type net ihttpactionresult example ejemplo asp c# html asp.net-mvc asp.net-mvc-4 asp.net-web-api

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>" }; }