从ASP.NET Web API返回HTML

如何从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); } } 

返回HTMLstring

返回媒体types为text/htmlstring内容:

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

ASP.NET核心

最简单的方法是使用“Produces”filter:

 [Produces("text/html")] public string Get() { return "<html><body>Hello World</body></html>"; } 

有关[Produces]属性的更多信息可以在这里find。

从AspNetCore 2.0开始,build议在这种情况下使用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>" }; }