2010-04-02 78 views
1

我正在通过NerdDinner MVC教程开展工作,并且遇到了这个问题并且很想知道。Html.Encode重要性

上的PDF 62页,他们有以下几点:

<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来说不是很重要吗?使用这种方法时,从模型的标题中编码dinner.Title?如果不是,为什么不呢?如果是这样,有没有办法使用Html.ActionLink,仍然使用Html.Encode?

回答

3

Html.ActionLink已在内部调用Encode(请参阅源文件)。你不想做两次。

+0

太棒了,我可以在哪里查看MVC附带的Html帮助器的源代码? – mwright 2010-04-02 19:17:40

+1

此处:http://aspnet.codeplex.com/releases/view/41742 – 2010-04-02 21:11:59