1. ホーム
  2. c#

[解決済み] ASP.NET Web APIからHTMLを返す

2022-05-09 14:03:28

質問

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

解決方法は?

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