【问题标题】:Web API 2 helper functions are not available in ASP.NET 5 Web API ControllerWeb API 2 辅助函数在 ASP.NET 5 Web API 控制器中不可用
【发布时间】:2016-04-04 12:27:04
【问题描述】:

我正在尝试在 ASP.NET 5 Web API 中使用来自 ASP.NET Web API 2 的帮助函数。唯一仍然可用的是 OK()。我找不到 BadRequest()、Conflict() 等。

这些功能被替换了吗?在 ASP.NET 5 Web API 中是否有一种新的方式来处理这样的事情?

【问题讨论】:

  • 你的意思是httpstatuscode?​​span>
  • 我不这么认为。我只想了解人们是如何使用 asp.net 5 处理响应的,因为现在 Web api 是在从 Controller 继承的类中完成的,这似乎发生了很大变化。
  • 抱歉误解了你想告诉我的内容:wildermuth.com/2015/09/27/A_Look_at_ASP_NET_5_Part_5_-_The_API

标签: c# asp.net asp.net-web-api asp.net-web-api2 asp.net-core


【解决方案1】:

HttpStatusCodeResult 是 MVC 的类。您可以轻松地为 BadRequest() 等创建扩展方法。

【讨论】:

【解决方案2】:

您可以使用 HttpResults 和 ObjectctResults 来使用这些结果,查看如何返回错误请求(400)的示例:

[HttpDelete("api/any")]
public IActionResult Delete([FromForm]List<long> ids)
{
     try
     {
         _service.Delete(ids);
          return new HttpOkResult();
     }
     catch (Exception)
     {
        return new BadRequestObjectResult("Error");
     }
}

但是对于给定状态码的更多结果,请参见此处 vNext 具有的所有结果:vNext Repo

【讨论】:

  • 在 asp.net 5 中,无论是控制器还是 web api 的所有类都从控制器继承。
  • @BlakeRivell 我的错,我看不到它是 VNext,我将编辑我的答案
  • 我注意到在 asp.net 5 中所有的 web api 函数通常都是 IActionResult,我猜你应该使用像 HttpOkResult 和 BadRequestObjectResult 这样的东西。谢谢你的例子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
  • 2013-06-23
  • 1970-01-01
  • 2015-08-10
  • 2015-10-17
  • 1970-01-01
相关资源
最近更新 更多