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>
<div class="display-field">
@Html.Raw(Model.ContentBody)
</div>
Dieser Code hat das Problem gelöst!
@Html.Raw
war für mich nicht hier ein Beispiel: -
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>
Aber das hat stattdessen funktioniert: -
@MvcHtmlString.Create(HttpUtility.HtmlDecode(@model.ContentBody))
oder Sie können auch verwenden: -
@Html.Raw(HttpUtility.HtmlDecode(@model.ContentBody));
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);
}
Bitte verwenden Sie diese Option, um die Verwendung von HTML mit Decode anzuzeigen.
@MvcHtmlString.Create(@Model.OurVision)
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>
Ü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");