2010-11-13 4 views
34

Je ne sais pas encore comment cela fonctionne ... en essayant de trouver de la documentation.Chaînes d'encodage HTML - Formulaires Web ASP.NET VS Razor View Engine

Dans mon application existante, j'ai deux façons différentes de rendre les chaînes à mon avis

<%: model.something %> 
<!-- or --> 
<%= model.something %> 

Le premier est html codé, et le second est pas.

Existe-t-il quelque chose de similaire dans Razor? Tout ce que je peux trouver est ceci, qui est la version encodée.

@model.something 

Répondre

57

Je crois que la meilleure approche serait d'utiliser la méthode Raw extension: @Html.Raw(Model.Something)

+0

J'ai reçu un courriel de Marcind indiquant que nous devrions en fait utiliser cela. –

15

@Model.Something automatiquement HTML encode. Si vous voulez éviter l'encodage HTML (et vous ne le voulez que si vous êtes absolument sûr de ce que vous faites), vous pouvez utiliser @MvcHtmlString.Create(Model.Something) (en gros tout ce qui implémente IHtmlString ne sera pas encodé). Phil Haack blogged sur la syntaxe du moteur de vue Razor.

+1

merci cool. Savez-vous s'ils travaillent sur une syntaxe plus courte pour envoyer une chaîne non codée? quelque chose comme '@ = Model.Something' serait bien. Ne pas dire que c'est la bonne façon, juste une idée. –

+4

Nous regardons quelque chose comme ça pour v2 de Razor. – marcind

+0

Je serai extatique quand cela se concrétisera. En fait, ce serait bien d'être en mesure de le mettre dans une classe de copains, de sorte que tout soit réglé et oublié. '' pour le '@ Html.EditorFor()' –

Questions connexes