MVC6中的HttpConflict在哪里?

Chr*_*isz 4 asp.net-core-mvc

我是一个没有"网络东西"经验的C++人,但我的主管要我去学习"ASP.NET MVC 6"的方法,因为它是最新的时髦的东西.

我设法得到至少一个教程,但我看不到任何参考和任何文档.我在哪里查找有哪些类和方法?

我目前的问题是我试图弄清楚如何从我的控制器中的Create方法返回一个409的Http状态.我没有看到HttpConflict方法.我该怎么称呼?

STW*_*STW 6

使用ASP.NET Core 1.0,您可以使用StatusCode(int statusCode)任何可用的方法Controller.

[HttpPost]
public IActionResult Create([FromBody] Widget item)
{
  // ...

  // using the HttpStatusCode enum keeps it a little more readable
  return StatusCode((int) HttpStatusCode.Conflict); 
}
Run Code Online (Sandbox Code Playgroud)


Dan*_*.G. 5

在ASP MVC 6中,您可以StatusCodeResult从控制器方法返回一个实例:

public IActionResult ConflictAction()
{
    return new StatusCodeResult(StatusCodes.Status409Conflict);
}
Run Code Online (Sandbox Code Playgroud)

更好的是,你可以创建自己的HttpConflictResult类:

public class HttpConflictResult : StatusCodeResult
{
    public HttpConflictResult() : base(StatusCodes.Status409Conflict)
    {
    }
}

public IActionResult ConflictAction()
{
    return new HttpConflictResult();
}
Run Code Online (Sandbox Code Playgroud)

如果您想知道,那些结果类型只是设置StatusCode响应的属性,因此以下将基于以下两种方法StatusCodeResult:

public IActionResult ConflictAction()
{
    Response.StatusCode = StatusCodes.Status409Conflict;
    return new EmptyResult();
}
Run Code Online (Sandbox Code Playgroud)