我是一个没有“web stuff”经验的C++人,但是我的主管想让我去学习“ASP.NET MVC 6”的方法,因为它是最新的时髦的东西。MVC6中的HttpConflict在哪里?
我设法弄到至少一个教程,但我看不到任何地方的参考和文档。我在哪里查找哪些类和方法?
我目前的问题是,我想弄清楚如何从我的控制器中的Create方法返回409的Http状态。我没有看到HttpConflict方法。我打电话给什么?
我是一个没有“web stuff”经验的C++人,但是我的主管想让我去学习“ASP.NET MVC 6”的方法,因为它是最新的时髦的东西。MVC6中的HttpConflict在哪里?
我设法弄到至少一个教程,但我看不到任何地方的参考和文档。我在哪里查找哪些类和方法?
我目前的问题是,我想弄清楚如何从我的控制器中的Create方法返回409的Http状态。我没有看到HttpConflict方法。我打电话给什么?
在ASP MVC 6,你可以从你的控制器方法返回StatusCodeResult
的一个实例:
public IActionResult ConflictAction()
{
return new StatusCodeResult(StatusCodes.Status409Conflict);
}
更重要的是,你可以创建自己的HttpConflictResult
类:
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();
}
您正在寻找HttpStatusCode
命名空间
using System.Net.Http;
using System.Web.Http;
您可以使用它像
public HttpResponseMessage ConflictSample()
{
return Request.CreateResponse(HttpStatusCode.Conflict, "Conflict");
}
请求 - 这到底是什么呢? – Maverick
@Maverick我更新了答案。 – BrunoMartinsPro
谢谢:)。值得注意的是,你还需要Microsoft.AspNet.Mvc.WebApiCompatShim的参考;) – Maverick
在ASP.NET核心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;
}
我认为这是一个更清洁的方式
这是HttpStatusCodeResult方法在哪里?你给的链接已经死了,我无法在图书馆找到它。 –
它被重命名为'StatusCodeResult'。我刚刚更新了答案和链接 –