我使用MVC 3和Asp.net C#剃刀。
我有下面的代码视图。 model.ContentBody
有一定的HTML标签。
我需要作为译码显示该HTML内容。
我应如何更改我的代码在View?
<div class="display-field">
@Html.DisplayFor(model => model.ContentBody)
</div>
我使用MVC 3和Asp.net C#剃刀。
我有下面的代码视图。 model.ContentBody
有一定的HTML标签。
我需要作为译码显示该HTML内容。
我应如何更改我的代码在View?
<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)
好了,总结一下。在我的服务/控制器,而模型返回到视图
....
Description = WebUtility.HtmlDecode(narration.Narration1)
我CSHTML,其中显示了tinyMCE ..只是经常绑定(我是用HtmlAttributeHelper用于其他用途。您可以忽略它)
<div>
@Html.TextAreaFor(model => model.Description, HtmlAttributeHelper.ConditionalDisable(false, new {@class = "tinymce"}))
</div>
而在CSHTML页面里显示的数据..
......
<td class="col-word-wrap">@Html.Raw(HttpUtility.HtmlDecode(@item.Narration1))</td>
转至“ContentBody”为MvcHtmlString到模型,而不是一个字符串。
这样,你可以使用:
<div class="display-field">
@model.ContentBody
</div>
在您的控制器获得MvcHtmlString只需使用:
MvcHtmlString myHtmlString = MvcHtmlString.Create("htmlcodeandtext");
在控制器中使用此代码:
string noHTML = Regex.Replace(inputHTML, @"<[^>]+>| ", "").Trim();