web-dev-qa-db-ja.com

MVC 3 Razorでデコードされたエンコード済みHTMLを表示する方法

MVC 3およびAsp.net C#でRazorを使用しています。

次のコードのビューがあります。 model.ContentBodyにはいくつかのHTMLタグがあります。

このHTMLコンテンツを[〜#〜] decoded [〜#〜]として表示する必要があります。

ビューでコードを変更するにはどうすればよいですか?

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

このコードは問題を解決しました!

74
GibboK

@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));
43
Mohit Kumar

モデルをビューに送信する前に、コントローラーで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);
    }
7
Diganta Kumar

さて、要約するために..私のサービス/コントローラーで、ビューにモデルを返しながら

    ....
    Description = WebUtility.HtmlDecode(narration.Narration1)

TinyMCEが表示されるcshtml ..定期的にバインドするだけです(他の目的で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>
2
Neelima Ediga

デコードでのHTMLの使用を表示するために使用してください。

@MvcHtmlString.Create(@Model.OurVision)   
2
Abhay Narayan

「ContentBody」をMvcHtmlStringとして文字列ではなくモデルに渡します。

この方法では、次を使用できます。

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

コントローラーでMvcHtmlStringを取得するには、次を使用します。

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