![](/img/trans.png)
[英]Return HTML from ASP.NET Web API ASP.NET Core 2 and get http status 406
[英]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);
}
}
如果您的Controller擴展了ControllerBase
或Controller
,則可以使用Content(...)
方法:
[HttpGet]
public ContentResult Index()
{
return base.Content("<div>Hello</div>", "text/html");
}
如果選擇不從Controller
類擴展,則可以創建新的ContentResult
:
[HttpGet]
public ContentResult Index()
{
return new ContentResult
{
ContentType = "text/html",
Content = "<div>Hello World</div>"
};
}
返回媒體類型為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.