Vik*_*tor 6 asp.net-mvc json.net asp.net-mvc-4 asp.net-web-api
如果我只想从模型中返回一些字段,我应该使用什么方法?我希望能够提出一些字段,如下所示:
?场=电子邮件,到期日期,化身(thumb_width,thumb_height,thumb_url)
此表达式也可以是请求中的标头.我也有嵌套对象,比如User中的Avatar.
这将节省我数百MB的流量,因为我的一些模型非常重.
更新:字段选择应该与Json和XML响应一起使用.
我找到了一个为你做这个的nuget包
Git hub源代码:https:
//github.com/dotarj/PartialResponse
它基本上包装了上面讨论的格式化程序,因此您只需要像这样配置它:
GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new PartialJsonMediaTypeFormatter() { IgnoreCase = true });
Run Code Online (Sandbox Code Playgroud)
然后,您可以?fields=<whatever>在请求中指定,它将返回仅包含指定字段的模型.
我将用自定义解析器替换默认的合同解析器(请参阅http://frankapi.wordpress.com/2012/09/09/going-camelcase-in-asp-net-mvc-web-api/),覆盖 GetSerializedMembers Newtonsoft.Json.Serialization.DefaultContractResolver 类中的方法,并使用查询字符串字段的值过滤其结果。
是否可以从该类访问查询字符串是另一个问题,您也许可以使用静态 httpcontext.current 来获取它,但可能有一个更干净的选项。
| 归档时间: |
|
| 查看次数: |
2742 次 |
| 最近记录: |