Возвращают HTML-код от веб-ASP.NET API-интерфейс


Как вернуть HTML из ASP.NET MVC Web API controller?

я попробовал код ниже, но получил ошибку компиляции с момента ответа.Запись не определена:

public class MyController : ApiController
{
    [HttpPost]
    public HttpResponseMessage Post()
    {
        Response.Write("<p>Test</p>");
        return Request.CreateResponse(HttpStatusCode.OK);
    }
 }
2 86

2 ответа:

вернуть HTML строку

возвращает содержимое строки с типом носителя 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 ядро

самый простой способ-использовать фильтр" производит":

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

подробнее о можно найти здесь.

начиная с AspNetCore 2.0, рекомендуется использовать ContentResult вместо в этом случае. Смотрите: 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>"
    };
}