wake-up-neo.com

Wie kann man in MVC 3 Razor codiertes HTML-Code als decodiert anzeigen?

Ich verwende Razor in MVC 3 und Asp.net C #.

Ich habe eine Ansicht mit dem folgenden Code. model.ContentBody enthält einige HTML-Tags.

Ich würde diesen HTML-Inhalt alsDECODEDanzeigen müssen.

Wie kann ich meinen Code in der Ansicht ändern?

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

Dieser Code hat das Problem gelöst!

71
GibboK

@Html.Raw war für mich nicht hier ein Beispiel: -

  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>

Aber das hat stattdessen funktioniert: -

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

oder Sie können auch verwenden: -

@Html.Raw(HttpUtility.HtmlDecode(@model.ContentBody));
42
Mohit Kumar

Sie können auch HTML im Controller dekodieren, bevor Sie das Modell an die Ansicht senden. 

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

Bitte verwenden Sie diese Option, um die Verwendung von HTML mit Decode anzuzeigen.

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

Um es zusammenzufassen ... In meinem Dienst/Controller, während das Modell in die Ansicht zurückkehrt 

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

Meine cshtml, wo das tinyMCE angezeigt wird .. binden Sie einfach regelmäßig (ich habe HtmlAttributeHelper für andere Zwecke verwendet.

 <div>
    @Html.TextAreaFor(model => model.Description, HtmlAttributeHelper.ConditionalDisable(false, new {@class = "tinymce"}))
 </div>

Und auf der cshtml-Seite, auf der die Daten angezeigt werden.

 ......
 <td class="col-Word-wrap">@Html.Raw(HttpUtility.HtmlDecode(@item.Narration1))</td>
0
Neelima Ediga

Übergeben Sie "ContentBody" als MvcHtmlString anstelle eines Strings an Ihr Modell.

Auf diese Weise können Sie einfach Folgendes verwenden:

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

um einen MvcHtmlString in Ihrem Controller zu erhalten, verwenden Sie einfach:

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