Jak zwrócić kod HTML z kontrolera interfejsu API sieci Web ASP.NET MVC?
Wypróbowałem poniższy kod, ale wystąpił błąd kompilacji, ponieważ nie zdefiniowano Response.Write:
public class MyController : ApiController
{
[HttpPost]
public HttpResponseMessage Post()
{
Response.Write("<p>Test</p>");
return Request.CreateResponse(HttpStatusCode.OK);
}
}
Odpowiedzi:
ASP.NET Core. Podejście 1
Jeśli twój kontroler się rozszerza
ControllerBase
lubController
możesz użyćContent(...)
metody:ASP.NET Core. Podejście 2
Jeśli zdecydujesz się nie wychodzić z
Controller
zajęć, możesz utworzyć noweContentResult
:Starsza wersja interfejsu API sieci Web ASP.NET MVC
Zwróć treść ciągu z typem multimediów
text/html
:źródło
[Produces]
podejścia?Począwszy od AspNetCore 2,0, w tym przypadku zaleca się użycie
ContentResult
zamiastProduce
atrybutu. Zobacz: https://github.com/aspnet/Mvc/issues/6657#issuecomment-322586885źródło