十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章将为大家详细讲解有关C#中WebApi Get请求方式传递实体参数的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
创新互联专注于企业全网营销推广、网站重做改版、正蓝网站定制设计、自适应品牌网站建设、H5页面制作、商城系统网站开发、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为正蓝等各大城市提供网站开发制作服务。一、实体类如何转换成QueryString这种键值对格式?
叫键值对可能不够专业,叫NameValueCollection?
很遗憾,也没找到啥现成的例子。
最后祭出反射,来拼装QueryString
二、服务器端如何提取QueryString里参数,自动变成一个实体类?
参数前面标注[FromUri]特性
上代码。
实体类:
namespace BaseLT.Core.Contract { public class Request { public Request(); public int Top { set; } public int PageSize { get; set; } public int PageIndex { get; set; } public string OrderBy { get; set; } public int SortState { get; set; } public bool CompareObject(T obj1, T obj2); public void ExtjsInit(); } }
WebApi服务器端:
public class TankController : ApiController { [HttpGet] [Route("api/tank/matters/public/{id=0}")] public IEnumerableGet(int id,[FromUri]Request req) { return do sth; } }
客户端:
[TestMethod] public void TestTankApi() { string url = "http://localhost/ybjzuser.api/api/tank/matters/public/"; url += getQueryString(new Request() { PageIndex = 1, PageSize = 100 }); string re; using (WebClient webClient = new WebClient()) { webClient.Encoding = Encoding.GetEncoding("utf-8"); re = webClient.DownloadString(url); } Assert.AreNotEqual(null, re); Console.WriteLine(re); } static string getQueryString(Request req) { StringBuilder query = new StringBuilder("?"); PropertyInfo[] propertys = req.GetType().GetProperties(); foreach (PropertyInfo pi in propertys) { if (pi.CanRead) { query.Append($@"{pi.Name}={pi.GetValue(req)}&"); } } return query.ToString(); }
关于“C#中WebApi Get请求方式传递实体参数的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。