asp.net – .NET Web API HttpResponseMessage模式?
所以我看到Web API 2控制器返回HttpResponse和实际对象.例:
public HttpResponseMessage Get(string id) { var app = apps.Single(c => c.Id == id); return new HttpResponseMessage(HttpStatusCode.OK) { Content = new ObjectContent<object>(app,Configuration.Formatters.JsonFormatter) }; } 要么 public Application Get(string id) { return apps.Single(c => c.Id == id); } 我的问题是“正确”的方式? #2要短得多但是#1更好或#2自动做#1#? 解决方法
请参阅
this和
this SO问题.
两种情况下的响应都是相同的(HttpResponseMessage). HttpResponseMessage允许您使用HTTP协议(例如,通过Headers属性)并统一您的返回类型. 返回CLR类型可以更具可读性,但是您可以放松使用不同状态代码返回不同类型的灵活性,除非您使用动态或对象来抵消返回特定类型的目的. 就个人而言,我更喜欢使用IHttpActionResult(在v2中添加)并在控制器操作上为预期的返回类型指定ResponseTypeAttribute以提高可读性. [HttpGet] [ResponseType(typeof(Portfolio))] public IHttpActionResult GetPortfolio([FromUri] long id) { // get portfolio return Ok(portfolio); } 您可以使用默认的IHttpActionResult实现轻松地操作响应消息(以RESTful方式)(请参阅上面的OkResult).避免自己构造HttpResponseMessage也可以保持代码清洁. Here是关于IHttpActionResult的官方文章,here是关于HttpResponseMessage和IHttpActionResult的有趣的SO对话. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 经典ASP会话ID Cookie生命周期
- .net – 设置响应状态代码会在自定义错误页面顶部导致不需要
- asp.net-mvc – 在MVC 4中获取表头名称的最佳方法
- asp.netcore di 实现批量接口注入
- asp.net-mvc – 我的web.config中没有角色管理器部分定义
- ASP.NET Core 2.0 支付宝扫码支付的实现代码
- asp.net – 从ListView ItemDataBound事件处理程序中的Data
- asp.net-mvc – 为什么验证请求取自ASP.net MVC?
- asp.net – 存储Web应用程序项目组合参考的位置?
- 如何测量Live ASP.NET MVC Web应用程序的内存使用情况?
- asp.net – 如何在Firefox上命名文件以供下载?
- asp.net捕获全局未处理异常的几种方法
- asp.net-mvc-3 – 可以在ASP.NET MVC 3上安装ASP
- asp.net – 提高性能的最佳方法(并以某种方式包括
- msbuild – 如何为ASP.NET 5项目设置TeamCity构建
- Asp.net超链接控件相当于
- asp.net-mvc-3 – 无法在MVC3 HTML Helper中获取
- 使用asp.net发送20,000封电子邮件
- asp.net – 无法完成操作.提供的SqlConnection不
- asp.net-core – 我需要在ASP.NET Core for Cach