2010-11-13 3 views
34

Non sono abbastanza sicuro di come funzioni ancora ... cercando di trovare la documentazione.Stringhe di codifica HTML - ASP.NET Web Form VS Razor View Engine

Nella mia app esistente Ho due modi diversi di stringhe di rendering, a mio avviso

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

Il primo è HTML codificato, e la seconda non lo è.

C'è qualcosa di simile in Razor? Tutto quello che posso trovare è questo, che è la versione codificata.

@model.something 

risposta

57

immagino l'approccio migliore sarebbe quello di utilizzare l'estensione-metodo di Raw: @Html.Raw(Model.Something)

+0

Ho ricevuto un'email da Marcind affermando che in realtà dovremmo usarlo. –

15

@Model.Something codifica HTML automaticamente. Se vuoi evitare la codifica HTML (e lo vuoi solo se sei assolutamente sicuro di quello che stai facendo) potresti usare @MvcHtmlString.Create(Model.Something) (in pratica tutto ciò che implementa IHtmlString non sarà codificato). Phil Haack blogged sulla sintassi del motore di visualizzazione Razor.

+1

fresco grazie. Sai se stanno lavorando su una sintassi più breve per l'invio di una stringa non codificata? qualcosa come '@ = Model.Something 'sarebbe bello. Non dire che è la strada giusta, solo un'idea. –

+4

Stiamo guardando qualcosa del genere per v2 di Razor. – marcind

+0

Sarò estasiato quando questo si realizzerà. In effetti, sarebbe bello poterlo impostare in una classe di amici così che sia impostato e dimenticato. '' per '@ Html.EditorFor()' –