asp.net-core – 什么应该是WEB API Action Method的返回类型?
|
我正在使用.NET Core开发ASP.NET Web API.此Web API将主要由UI应用程序访问(UI将使用ASP.NET Core MVC开发),但在将来API也可以由其他应用程序访问. 在我的WEB API中,所有方法都是异步的. 如果我希望客户端进行内容协商,那么应该是API操作方法的返回类型任务< IActionresult>或任务< SomePOCO> 如果我希望方法总是以JSON格式返回数据,那么应该返回API动作方法的类型?应该是Task< IActionResult>或任务< JsonResult>或任务< SomePOCO>因为我认为所有3个都会工作所以不确定哪一个适合这里? 解决方法
要进行内容协商,请返回Task< ObjectResult>或任务< MyPoco>. 框架自动将POCO包装在ObjectResult中;因此,两个选项都是等价的,并且都将遵循HTTP Accept标头.您还将通过返回实现ObjectResult的任何结果来获得内容协商,例如OkObjectResult.
要始终返回JSON,请返回Task< JsonResult> (或使用[Produces]过滤器). 另见:https://docs.asp.net/en/latest/mvc/models/formatting.html#content-negotiation
IActionResult是Controller返回的所有结果的合同.如果您的操作的签名具有IActionResult返回类型,那么您的操作的方法体可以返回任何结果类型,因为它们都实现了IActionResult接口.这是继承层次结构. IActionResult
ActionResult
ChallengeResult
ContentResult
EmptyResult
FileResult
FileContentResult
FileStreamResult
PhysicalFileResult
VirtualFileResult
ForbidResult
LocalRedirectResult
ObjectResult
CreatedAtActionResult
CreatedAtRouteResult
CreatedResult
BadRequestObjectResult
NotFoundObjectResult
OkObjectResult
RedirectResult
RedirectToActionResult
RedirectToRouteResult
SignInResult
SignOutResult
StatusCodeResult
NoContentResult
NotFoundResult
OkResult
UnauthorizedResult
UnsupportedMediaTypeResult
BadRequestResult
另见:https://github.com/aspnet/Mvc/tree/dev/src/Microsoft.AspNetCore.Mvc.Core (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – post文件提供404页面结果,即使发布的文件在maxR
- asp.net – 是否需要在web.config中保护连接字符串?
- asp.net-mvc – Asp.Net MVC:为什么我的视图将NULL模型传递
- asp.net-web-api – 为什么我的超级简单的ASP.NET Web API(
- asp.net-mvc-3 – 我需要什么样的路线才能提供虚荣网址?
- asp.net – 如何在生产.NET网站中更改Web引用?
- ASP.NET / MVC 4在64位IIS 7.5服务器上捆绑和缩小404问题
- asp.net-mvc – 如何在多个Asp.net MVC应用程序中使用通用布
- asp.net mvc框架,自动发送电子邮件
- asp.net-mvc – MVC 5中的Web API属性路由异常:该对象尚未
- RSS2.0中文规范详解及示例
- asp.net – 可以在web.config中添加响应http头吗
- asp.net-mvc – 在Azure上使用LocalDb MDF文件
- asp.net – C#:GDI:使用位图的保存方法过度写入
- asp.net-mvc – 可以使用ASP.Net MVC Razor视图来
- 数组 – 如何在vbscript中实现具有可变大小的数组
- asp.net-mvc – Angular ng-include cshtml页面
- asp.net – Autofac懒惰属性注入
- MONO / ASP.NET Linux主机?
- asp.net-mvc – 在我的ASP.NET MVC网站中缓存不能
