问题描述
在ASP.NET核心MVC中,如何返回自定义HTTP响应以及自定义HTTP代码?我希望能够自己构建响应,最好从控制器返回响应。
public IActionResult Index()
{
// set custom HTTP response and return
}
....有人获取索引,我应该能够像下面一样手动发送响应,在这里我可以控制响应的各个方面。我什至可以只返回自己构建的字符串即可。
HTTP/1.1 200 OK
Date: Mon,27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed,22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed
如何在ASP.NET Core MVC中做到这一点?
解决方法
我意识到我的想法有点隧道化,答案比我最初预期的要简单得多。
public void Index()
{
Response.StatusCode = 200;
Response.StartAsync();
return;
}
这允许人们自己简单地将数据添加到响应中并将其发送给客户端。我正在使用ASP.NET Core 3.1 MVC。
,适应here的答案...
public IActionResult Index()
{
return StatusCode((int)HttpStatusCode.MovedPermanently);
}
另一个示例,如果您想在响应正文中传回400状态代码和验证错误...
public IActionResult Index()
{
var validationErrors = _repository.Validate()
return StatusCode((int)HttpStatusCode.BadRequest,validationErrors);
}