1

我正在研究 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>

然后他们声明,您可以使用 Html 帮助程序,而不是使用<a>标记,如下所示:

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

问题是:在使用这种方法时,Html.Encode 模型中的dinner.Title 是否仍然很重要?如果不是,为什么不呢?如果是这样,有没有办法使用 Html.ActionLink 并仍然使用 Html.Encode?

4

1 回答 1

3

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

于 2010-04-02T19:16:46.967 回答