Mam prosty model:Jak używać brzytwy jak asp: dosłowne?
public class MyModel
{
public string Text{get;set;}
}
Mam widoku, który renderuje właściwość Text MyModel:
<p>@Model.Text</p>
Jak renderować tagi html z tekstu, takich jak znaczniki? Na przykład mam Tekst "<b>Text</b>
". Chcę dostać pogrubiony tekst wewnątrz znacznika p jako rezultat:
Tekst
Ale Razor renderuje tekst jak:
<b>Text</b>
Jest to dobre rozwiązanie, jeśli chcesz czasami renderować zawartość bez kodowania HTML. Kiedy wiesz, że właściwością twojego modelu zawsze będzie treść HTML, która nie powinna być automatycznie kodowana, powinieneś utworzyć typ tej właściwości IHtmlString. Więc jeśli zmienisz tekst na IHtmlString zamiast łańcucha, możesz wpisać @ Model.Text, a Razor wypisze tagi poprawnie. W ten sposób jest oczywiste, że niektóre treści są w formacie HTML i powinny zostać starannie odkażone, aby uniknąć ataków wtrysku HTML. –
@anurse: Wow, świetny komentarz. Nie wiedziałem o tym sam. Zaktualizuję odpowiedź, aby dodać te informacje. – paracycle