c# - ihttpactionresult - Devuelve HTML desde ASP.NET Web API
web api response type (2)
¿Cómo devolver el código HTML desde el controlador ASP.NET MVC Web API?
Probé el código siguiente pero obtuve el error de compilación ya que Response.Write no está definido:
public class MyController : ApiController
{
[HttpPost]
public HttpResponseMessage Post()
{
Response.Write("<p>Test</p>");
return Request.CreateResponse(HttpStatusCode.OK);
}
}
Devolver cadena HTML
Devuelve el contenido de la cadena con el tipo de medio text/html
:
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 Core
La manera más fácil sería usar el filtro "Produce":
[Produces("text/html")]
public string Get()
{
return "<html><body>Hello World</body></html>";
}
Puede encontrar más información sobre el atributo [Produces]
here .
Comenzando con AspNetCore 2.0, se recomienda utilizar ContentResult
lugar del atributo Produce
en este caso. Ver: https://github.com/aspnet/Mvc/issues/6657#issuecomment-322586885
Esto no se basa en la serialización ni en la negociación de contenido.
[HttpGet]
public ContentResult Index() {
return new ContentResult {
ContentType = "text/html",
StatusCode = (int)HttpStatusCode.OK,
Content = "<html><body>Hello World</body></html>"
};
}