簡體   English   中英

如何在 ASP.NET Core 控制器中返回自定義 HTTP 響應?

[英]How do I return a custom HTTP response in an ASP.NET Core Controller?

在 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。

這里調整答案......

public IActionResult Index()
{
    return StatusCode((int)HttpStatusCode.MovedPermanently);
}

另一個示例,如果您想在響應正文中傳回 400 狀態代碼和驗證錯誤...

public IActionResult Index()
{
    var validationErrors = _repository.Validate()
    return StatusCode((int)HttpStatusCode.BadRequest, validationErrors);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM