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);
}
}
ベストアンサー1
ASP.NET Core。アプローチ 1
コントローラーが拡張されている場合ControllerBase
、またはメソッドController
を使用できますContent(...)
:
[HttpGet]
public ContentResult Index()
{
return base.Content("<div>Hello</div>", "text/html");
}
ASP.NET Core。アプローチ 2
クラスから拡張しないことを選択した場合はController
、新しい を作成できますContentResult
。
[HttpGet]
public ContentResult Index()
{
return new ContentResult
{
ContentType = "text/html",
Content = "<div>Hello World</div>"
};
}
レガシー ASP.NET MVC Web API
メディアタイプで文字列コンテンツを返しますtext/html
:
public HttpResponseMessage Get()
{
var response = new HttpResponseMessage();
response.Content = new StringContent("<div>Hello World</div>");
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
}