سؤال

أنا أعمل من خلال البرنامج التعليمي 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 Helper مثل SO:

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

والسؤال هو: أليس من المهم html.encode العشاء. من النموذج عند استخدام هذا النهج؟ إذا لم يكن كذلك ، فلماذا لا؟ إذا كان الأمر كذلك ، هل هناك طريقة لاستخدام html.actionlink وما زلت تستخدم html.encode؟

هل كانت مفيدة؟

المحلول

Html.ActionLink مكالمات بالفعل Encode, ، داخليا (انظر المصدر). أنت لا تريد أن تفعل ذلك مرتين.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top