コントローラーから生の HTML を返す他の方法はありますか? viewbag を使用するのではなく、以下のようにします。
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.HtmlOutput = "<HTML></HTML>";
return View();
}
}
@{
ViewBag.Title = "Index";
}
@Html.Raw(ViewBag.HtmlOutput)
ベストアンサー1
View
コントローラーではなくHTMLを生成する必要があるため、これを行うことにはあまり意味がありません。しかし、とにかく、次のように使用できます。Controller.Content メソッド結果のHTML、コンテンツタイプ、エンコーディングを指定する機能を提供します。
public ActionResult Index()
{
return Content("<html></html>");
}
または、asp.net-mvc フレームワークに組み込まれているトリックを使用して、アクションが直接文字列を返すようにすることもできます。これにより、文字列のコンテンツがユーザーのブラウザーに配信されます。
public string Index()
{
return "<html></html>";
}
実際、 以外のアクション結果についてはActionResult
、フレームワークはそれを文字列にシリアル化してレスポンスに書き込もうとします。