簡體   English   中英

從ASP.NET Web API返回HTML

[英]Return HTML from ASP.NET Web API

如何從ASP.NET MVC Web API控制器返回HTML?

我嘗試了以下代碼,但由於未定義Response.Write,因此出現了編譯錯誤:

public class MyController : ApiController
{
    [HttpPost]
    public HttpResponseMessage Post()
    {
        Response.Write("<p>Test</p>");
        return Request.CreateResponse(HttpStatusCode.OK);
    }
 }

ASP.NET核心。 方法1

如果您的Controller擴展了ControllerBaseController ,則可以使用Content(...)方法:

[HttpGet]
public ContentResult Index() 
{
    return base.Content("<div>Hello</div>", "text/html");
}

ASP.NET核心。 方法2

如果選擇不從Controller類擴展,則可以創建新的ContentResult

[HttpGet]
public ContentResult Index() 
{
    return new ContentResult 
    {
        ContentType = "text/html",
        Content = "<div>Hello World</div>"
    };
}

舊版ASP.NET MVC Web API

返回媒體類型為text/html字符串內容:

public HttpResponseMessage Get()
{
    var response = new HttpResponseMessage();
    response.Content = new StringContent("<div>Hello World</div>");
    response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
    return response;
}

從AspNetCore 2.0開始,在這種情況下,建議使用ContentResult而不是Produce屬性。 參見: https : //github.com/aspnet/Mvc/issues/6657#issuecomment-322586885

這不依賴於序列化也不依賴於內容協商。

[HttpGet]
public ContentResult Index() {
    return new ContentResult {
        ContentType = "text/html",
        StatusCode = (int)HttpStatusCode.OK,
        Content = "<html><body>Hello World</body></html>"
    };
}

暫無
暫無

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

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