栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Web API控制器的Post方法中接收动态数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Web API控制器的Post方法中接收动态数据

如果JSON的结构不变

有了这个功能,您就可以像在API / Entity / someid?culture = en&layout = 1这样的网址上发送您提供的正文一样。

要在控制器路由中指定可选的查询参数,请为它们提供一个默认值,例如

public class EntityController : APIController{    public HttpResponseMessage Post([FromUri]string culture="EN", [FromUri]int layout=1, YourBody body )    { ... }}

如果YourBody始终像您提到的那样,则应自动反序列化以下内容:

public class YourBody{    public Dictionary<string, string> HeaderData {get; set;}    public Dictionary<string, string> RowData{get; set;}}

并且可以让您完全接触到身体的任何元素。

JSON的结构是否可以更改

这样的事情将允许接收任何一种json:

public HttpResponseMessage  Post([FromBody]JToken body){    // Process the body    return ...}

您将需要一些额外的验证,因为不会进行对象反序列化。您会知道的唯一想法是您的身体是JSON。

因此,您可能需要对其进行分析,以查看其外观是否符合您的期望。

例如,您可以执行以下操作来处理不断变化的正文内容,并仍然处理路线的可选查询参数:

public HttpResponseMessagePost([FromBody]JToken body, [FromUri]string culture="EN", [FromUri]int layout=1){    JObject headerData= body["headerData"].Value<JObject>();    JObject headerData= body["rowData"].Value<JObject>();    return ...;}

您还可以阅读此有关的原始数据发布到的WebAPI控制器的其他替代品。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/609162.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号