2010-04-02 2 views
1

Je suis en train de travailler sur le tutoriel NerdDinner MVC et je suis tombé sur ceci et je me posais des questions.Html.Encode importance

À la page 62 du pdf, ils ont les éléments suivants:

<asp:Content ID="Main" ContentPlaceHolderID="MainContent" runat="server"> 
    <h2>Upcoming Dinners</h2> 
    <ul> 
     <% foreach (var dinner in Model) { %> 
      <li> 
       <a href="/Dinners/Details/<%=dinner.DinnerID %>"> 
        <%= Html.Encode(dinner.Title) %> 
       </a> 
       on 
       <%= Html.Encode(dinner.EventDate.ToShortDateString())%> 
       @ 
       <%= Html.Encode(dinner.EventDate.ToShortTimeString())%> 
      </li> 
     <% } %> 
    </ul> 
</asp:Content> 

Ils ont ensuite état qu'au lieu d'utiliser une balise <a> que vous pouvez utiliser l'assistant Html comme ceci:

<%= Html.ActionLink(dinner.Title, "Details", new { id=dinner.DinnerID }) %> 

Le question est: N'est-il pas encore important de Html.Encode le dîner.Titre du Modèle lors de l'utilisation de cette approche? Si non, pourquoi pas? Si oui, existe-t-il un moyen d'utiliser Html.ActionLink et d'utiliser toujours Html.Encode?

Répondre

3

Html.ActionLink déjà appels Encode, en interne (voir la source). Vous ne voulez pas le faire deux fois.

+0

Génial, où puis-je regarder la source pour les aides HTML incluses avec MVC? – mwright

+1

Ici: http://aspnet.codeplex.com/releases/view/41742 –

Questions connexes