2010-04-02 3 views
1

Я работаю над учебником NerdDinner MVC и наткнулся на это и задавался вопросом.Html.Encode important

На странице 62 PDF они имеют следующее:

<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> 

Затем они утверждают, что вместо того, чтобы использовать <a> тег, который вы можете использовать помощник Html, как так:

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

вопрос в том, не важно ли это для Html.Encode the dinner.Title от модели при использовании этого подхода? Если нет, почему бы и нет? Если да, есть ли способ использовать Html.ActionLink и по-прежнему использовать Html.Encode?

ответ

3

Html.ActionLink уже звонит Encode, внутренне (см. Источник). Вы не хотите делать это дважды.

+0

Awesome, где я могу посмотреть на источник для Html-помощников, включенных в MVC? – mwright

+1

Здесь: http://aspnet.codeplex.com/releases/view/41742 –