トップ回答者
WebMatrix Razorで変数に代入されたhtmlタグについて

質問
-
お世話になっております。
現在、ASP.Net razorを使って色々検証をいたしております。
変数に代入したhtmlタグを含む文字列を、htmlencodeをせずに出力したいのですが、たとえば、以下のようなコードを動作させた場合、自動的にhtmlencodeされた状態で出力されてしまいます。
//ここから----------------
@{
var strHtml = "<p>Hello World</p>"
}
<div>@strHtml</div><!-- htmlencode済の値が返却される -->
//-----------------ここまで
Response.Write(変数) を使用すれば、htmlencodeされていない期待通りの値が返却されることはわかりましたが、Response.Writeでは、出力順序がhtmlで記述した部分よりも先になってしまいますため、うまく活用することが難しい状態です。
何かよい解決方法ございますでしょうか?
回答
-
http://takepara.blogspot.com/2010/08/blog-post.html
namespace System.Web.Mvc { public static class HtmlHelperExtensions { public static IHtmlString Literal(this HtmlHelper htmlHelper, string html) { return MvcHtmlString.Create(html); } public static IHtmlString AsHtml(this string html) { return MvcHtmlString.Create(html); } } }
↑これを用意。@Html.Literal(Model.contents)
あとは↑こうか↓こう。@Model.contents.AsHtml()
すべての返信
-
確認してませんけど、<text>ブロックで囲んでみたらどうでしょう?
http://www.atmarkit.co.jp/fdotnet/scottgublog/20100714razor/razor.html
あおい情報システム株式会社 小野修司(どっとねっとふぁん) -
http://takepara.blogspot.com/2010/08/blog-post.html
namespace System.Web.Mvc { public static class HtmlHelperExtensions { public static IHtmlString Literal(this HtmlHelper htmlHelper, string html) { return MvcHtmlString.Create(html); } public static IHtmlString AsHtml(this string html) { return MvcHtmlString.Create(html); } } }
↑これを用意。@Html.Literal(Model.contents)
あとは↑こうか↓こう。@Model.contents.AsHtml()