Html.Encode重要性

时间:2010-04-02 19:06:38

标签: asp.net-mvc encoding nerddinner html.actionlink

我正在研究NerdDinner MVC教程并遇到了这个问题并且对此感到疑惑。

在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.Encode晚餐是不是很重要。使用这种方法时来自模型的标题?如果没有,为什么不呢?如果是这样,有没有办法使用Html.ActionLink并仍然使用Html.Encode?

1 个答案:

答案 0 :(得分:3)

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