Html.Encode важность - PullRequest
       14

Html.Encode важность

1 голос
/ 02 апреля 2010

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

На странице 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. Закодировать обед. Название модели при использовании этого подхода? Если нет, то почему? Если это так, есть ли способ использовать Html.ActionLink и по-прежнему использовать Html.Encode?

1 Ответ

3 голосов
/ 02 апреля 2010

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

...