MVC6 中的 HttpConflict 在哪里?
Where is the HttpConflict in MVC6?
我是一个没有 "web stuff" 经验的 C++ 人,但我的主管希望我去学习 "ASP.NET MVC 6" 的方法,因为它是最新的时髦东西。
我设法找到了至少一个教程,但我没有看到任何参考资料,也没有任何文档。我在哪里可以查看有哪些 类 和方法?
我当前的问题是我正在尝试弄清楚如何从我的控制器中的 Create 方法中 return Http 状态 409。我没有看到 HttpConflict 方法。我叫什么?
您正在寻找HttpStatusCode
命名空间
using System.Net.Http;
using System.Web.Http;
你喜欢用它
public HttpResponseMessage ConflictSample()
{
return Request.CreateResponse(HttpStatusCode.Conflict, "Conflict");
}
在 ASP MVC 6 中,您可以 return 来自控制器方法的 StatusCodeResult
实例:
public IActionResult ConflictAction()
{
return new StatusCodeResult(StatusCodes.Status409Conflict);
}
更好的是,您可以创建自己的 HttpConflictResult
class:
public class HttpConflictResult : StatusCodeResult
{
public HttpConflictResult() : base(StatusCodes.Status409Conflict)
{
}
}
public IActionResult ConflictAction()
{
return new HttpConflictResult();
}
如果您想知道,这些结果类型只是设置响应的 StatusCode
属性,因此以下内容等同于上述基于 StatusCodeResult
的 2 种方法:
public IActionResult ConflictAction()
{
Response.StatusCode = StatusCodes.Status409Conflict;
return new EmptyResult();
}
使用 ASP.NET Core 1.0,您可以使用任何 Controller
.
上可用的 StatusCode(int statusCode)
方法
[HttpPost]
public IActionResult Create([FromBody] Widget item)
{
// ...
// using the HttpStatusCode enum keeps it a little more readable
return StatusCode((int) HttpStatusCode.Conflict);
}
public async Task<IActionResult> Foo(string sequenceId)
{
var response = new ContentResult()
{
StatusCode = StatusCodes.Status409Conflict,
Content = "Order duplicate"
};
return response;
}
我认为这是一种更简洁的方式
我是一个没有 "web stuff" 经验的 C++ 人,但我的主管希望我去学习 "ASP.NET MVC 6" 的方法,因为它是最新的时髦东西。
我设法找到了至少一个教程,但我没有看到任何参考资料,也没有任何文档。我在哪里可以查看有哪些 类 和方法?
我当前的问题是我正在尝试弄清楚如何从我的控制器中的 Create 方法中 return Http 状态 409。我没有看到 HttpConflict 方法。我叫什么?
您正在寻找HttpStatusCode
命名空间
using System.Net.Http;
using System.Web.Http;
你喜欢用它
public HttpResponseMessage ConflictSample()
{
return Request.CreateResponse(HttpStatusCode.Conflict, "Conflict");
}
在 ASP MVC 6 中,您可以 return 来自控制器方法的 StatusCodeResult
实例:
public IActionResult ConflictAction()
{
return new StatusCodeResult(StatusCodes.Status409Conflict);
}
更好的是,您可以创建自己的 HttpConflictResult
class:
public class HttpConflictResult : StatusCodeResult
{
public HttpConflictResult() : base(StatusCodes.Status409Conflict)
{
}
}
public IActionResult ConflictAction()
{
return new HttpConflictResult();
}
如果您想知道,这些结果类型只是设置响应的 StatusCode
属性,因此以下内容等同于上述基于 StatusCodeResult
的 2 种方法:
public IActionResult ConflictAction()
{
Response.StatusCode = StatusCodes.Status409Conflict;
return new EmptyResult();
}
使用 ASP.NET Core 1.0,您可以使用任何 Controller
.
StatusCode(int statusCode)
方法
[HttpPost]
public IActionResult Create([FromBody] Widget item)
{
// ...
// using the HttpStatusCode enum keeps it a little more readable
return StatusCode((int) HttpStatusCode.Conflict);
}
public async Task<IActionResult> Foo(string sequenceId)
{
var response = new ContentResult()
{
StatusCode = StatusCodes.Status409Conflict,
Content = "Order duplicate"
};
return response;
}
我认为这是一种更简洁的方式