MVC 3 と Asp.net C# で Razor を使用しています。
次のコードを含むビューがあります。model.ContentBody
いくつかの HTML タグがあります。
この HTML コンテンツをDECODEDとして表示する必要があります。
ビューでコードを変更するにはどうすればよいですか?
<div class="display-field">
@Html.DisplayFor(model => model.ContentBody)
</div>
MVC 3 と Asp.net C# で Razor を使用しています。
次のコードを含むビューがあります。model.ContentBody
いくつかの HTML タグがあります。
この HTML コンテンツをDECODEDとして表示する必要があります。
ビューでコードを変更するにはどうすればよいですか?
<div class="display-field">
@Html.DisplayFor(model => model.ContentBody)
</div>
<div class="display-field">
@Html.Raw(Model.ContentBody)
</div>
このコードは問題を解決しました!
@Html.Raw
ここで私のために働いていなかったのは例です:-
string name = "<p><span style="font-size: small; color: #ff0000;"><span style="font-size: small;">&nbsp;<span style="font-size: large; color: #000000;">Hi</span><br />&nbsp; <br />This is just a sample,<br />This will not work with @Html.Raw(),<br />";
<span>@Html.Raw(name);</span>
しかし、これは代わりに機能しました:-
@MvcHtmlString.Create(HttpUtility.HtmlDecode(@model.ContentBody))
または、次を使用することもできます:-
@Html.Raw(HttpUtility.HtmlDecode(@model.ContentBody));
モデルをビューに送信する前に、コントローラーで html をデコードすることもできます。
WebUtility.HtmlDecode()
public ActionResult Index(int id)
{
var content = _contentRepository.GetContent(id);
var classViewModel = new ClassViewModel
{
ContentBody = WebUtility.HtmlDecode(ClassViewModel.ContentBody)
};
return View(classViewModel);
}
デコードで使用するHtmlを表示するために使用してください。
@MvcHtmlString.Create(@Model.OurVision)
文字列ではなく、MvcHtmlString として "ContentBody" をモデルに渡します。
このようにして、次のものを使用できます。
<div class="display-field">
@model.ContentBody
</div>
コントローラーで MvcHtmlString を取得するには、次を使用します。
MvcHtmlString myHtmlString = MvcHtmlString.Create("htmlcodeandtext");
文字列は URL エンコードされている場合もあるため、デコードするには次のようにします。
@Html.Raw(HttpUtility.UrlDecode(string))
コントローラーで次のコードを使用します。
string noHTML = Regex.Replace(inputHTML, @"<[^>]+>| ", "").Trim();