我是一個沒有「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'。我剛剛更新了答案和鏈接 –