Tim*_*Tim 37 asp.net-web-api owin asp.net-core
我正在尝试将我的web api 2项目移动到ASP.NET 5.但是我有许多不再存在的元素.
例如IHttpActionResult或Ok(), NotFound()方法.或者RoutePrefix[]
我应该改变每一个IHttpActionResult用IActionResult?改变Ok()用new ObjectResult?(它是一样的吗?)
那怎么样HttpConfiguration似乎在startup.cs中不存在?
Sea*_*ean 64
IHttpActionResult现在是有效的IActionResult,并且返回一个Ok带有返回对象,你可以使用return new ObjectResult(...);
所以有效地这样:
public IActionResult Get(int id)
{
if (id == 1) return HttpNotFound("not found!");
return new ObjectResult("value: " + id);
}
Run Code Online (Sandbox Code Playgroud)
这是一篇更详细的好文章:
http://www.asp.net/vnext/overview/aspnet-vnext/create-a-web-api-with-mvc-6
更新回复
我看到有人WebApiCompatShim在评论中引用了。
WebApiCompatShim 仍针对此类可移植性场景维护该工具,并且现已发布1.1.0。
我认为这Microsoft.AspNetCore.OData 1.0.0-rtm-00011具有WebApiCompatShim依赖性。我不完全知道他们在这一领域要实现的目标,这只是事实。
如果您不打算使用其他兼容性软件包,而是要进行更多的重构工作,则可以查看以下方法:WebApiCompatShim-如何使用MVC 6配置REST api
您仍然可以使用Ok(),也可以尝试使用该OkObjectResult()方法,因为Http单词已被删除,以免太冗长。HttpOkObjectResult->OkObjectResult
[HttpPost]
public ObjectResult Post([FromBody]string value)
{
var item = new {Name= "test", id=1};
return new OkObjectResult(item);
}
[HttpPost]
public ObjectResult Post([FromBody]string value)
{
var item = new {Name= "test", id=1};
return Ok(item);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19744 次 |
| 最近记录: |