从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/html
string内容:
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>" }; }