如何在MVC 3剃须刀解码显示编码的HTML?(How to display encoded HTM

2019-08-01 04:00发布

我使用MVC 3和Asp.net C#剃刀。

我有下面的代码视图。 model.ContentBody有一定的HTML标签。

我需要作为译码显示该HTML内容。

我应如何更改我的代码在View?

 <div class="display-field">
        @Html.DisplayFor(model => model.ContentBody)
 </div>

Answer 1:

<div class="display-field">
    @Html.Raw(Model.ContentBody)
</div>

此代码解决了这个问题!



Answer 2:

@Html.Raw不是我在这里工作的例子: -

  string name = "&lt;p&gt;&lt;span style=&quot;font-size: small; color: #ff0000;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&lt;span style=&quot;font-size: large; color: #000000;&quot;&gt;Hi&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;This is just a sample,&lt;br /&gt;This will not work with @Html.Raw(),&lt;br /&gt;";
  <span>@Html.Raw(name);</span>

但是,这不是工作: -

@MvcHtmlString.Create(HttpUtility.HtmlDecode(@model.ContentBody))

或者你也可以使用: -

@Html.Raw(HttpUtility.HtmlDecode(@model.ContentBody));


Answer 3:

你也可以在控制器发送模型到视图之前解码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);
    }


Answer 4:

请使用以显示与解码HTML中使用。

@MvcHtmlString.Create(@Model.OurVision)   


Answer 5:

好了,总结一下。在我的服务/控制器,而模型返回到视图

    ....
    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>


Answer 6:

转至“ContentBody”为MvcHtmlString到模型,而不是一个字符串。

这样,你可以使用:

<div class="display-field">
        @model.ContentBody
 </div>

在您的控制器获得MvcHtmlString只需使用:

MvcHtmlString myHtmlString = MvcHtmlString.Create("htmlcodeandtext");


Answer 7:

在控制器中使用此代码:

string noHTML = Regex.Replace(inputHTML, @"<[^>]+>|&nbsp;", "").Trim();


文章来源: How to display encoded HTML as decoded in MVC 3 Razor?