2012-10-05 12 views

Odpowiedz

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

Kod ten rozwiązał problem!

+4

Będziemy chcieli, aby być ostrożnym z tym jednym, że ślepo ufa tekst i umieszcza ją na stronie jako ciąg znaków. Co jeśli Model.ContentBody był równy '' –

+0

dzięki, łatwiejsze niż się spodziewałem –

+0

@Andy Raddatz dzięki za wskazówkę, w moim przypadku cała zawartość jest odkażona i bezpieczna z db. – GibboK

34

@Html.Raw nie był dla mnie tu jest przykład: -

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> 

Ale to działało zamiast: -

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

lub można również użyć: -

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

Wydaje się naprawdę gadatliwy, dlaczego nie używać tylko Html.Raw ?? – GibboK

+1

@ GibboK 'MvcHtmlString.Create()' jest bardziej semantycznym IMO, chociaż każde rozwiązanie będzie działać. –

+0

Mam do czynienia z problemem tak samo jak ty, teraz twoja poczta dla mnie. – Rajpurohit

0

Przełęcz w "ContentBody" jako MvcHtmlString do twojego modelu zamiast ciągu.

ten sposób można po prostu użyć:

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

w kontrolerze, aby uzyskać MvcHtmlString wystarczy użyć:

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

Można również dekodować html w sterowniku przed wysłaniem modelu do widoku ,

WebUtility.HtmlDecode()

public ActionResult Index(int id) 
    { 
     var content = _contentRepository.GetContent(id); 
     var classViewModel = new ClassViewModel 
           { 
            ContentBody = WebUtility.HtmlDecode(ClassViewModel.ContentBody) 
           }; 
     return View(classViewModel); 
    } 
1

Proszę używać do wyświetlania html z dekodowania.

@MvcHtmlString.Create(@Model.OurVision) 
-4

użyć tego kodu w kontrolerze:

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