سؤال

اقترحت ما أعتقد أنه هو بناء جملة أفضل لآراء ASP.NET MVC في هذا السؤال. وبعد منذ أن تم الرد على هذا السؤال، أعتقد أن إجابتي ستولد ملاحظات صغيرة، لذلك أقدم ذلك كمسألة خاصة به هنا.

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

المحلول

أنت على المسار الصحيح، لكنني أعتقد أنك ذهبت بعيدا جدا. يمزج الرصيد رمز HTML حيث يتدفق ولا يزيد عن تعقيده وعدم إنشاء حساء العلامة. أفضل محرك عرض وجدته هذا يفعل هذا شرارة.

نلقي نظرة على ذلك وستجد أنه يعالج ما تقترحه بطريقة أكثر دقة وقابلة للقراءة.

نصائح أخرى

أنت تستخدم العلامات لتمثيل التعليمات البرمجية. رأيي هو: حيث يلزم الكود، ما عليك سوى استخدام التعليمات البرمجية، وهو دائما أكثر مرونة. حيث يلزم الترميز، استخدم العلامات.هذه المقالة يشرح بدقة وجهة نظري. في بعض الأحيان يكون الخط بين التعليمات البرمجية والتمييز ضبابية، رغم ذلك.

أتمنى حقا أن يتوقف الأشخاص عن علاج XML ككلغة برمجة.

ربما يجب عليك استخدام هذه "بناء جملة MVC بدلا من ذلك، يسمى HAML.

%h2= Model.CategoryName
%ul
  - foreach (var product in Model.Products)
    %li
      = product.ProductName 
      .editlink
        = Html.ActionLink("Edit", new { Action="Edit", ID=product.ProductID })
= Html.ActionLink("Add New Product", new { Action="New" })

يستبدل

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" AutoEventWireup="true" 
    CodeBehind="List.aspx" Inherits="MvcApplication5.Views.Products.List" Title="Products" %>
<asp:Content ContentPlaceHolderID="MainContentPlaceHolder" runat="server">
 <h2><%= ViewData.Model.CategoryName %></h2>
  <ul>
    <% foreach (var product in ViewData.Model.Products) { %>
      <li>
        <%= product.ProductName %> 
        <div class="editlink">
          (<%= Html.ActionLink("Edit", new { Action="Edit", ID=product.ProductID })%>)
        </div>
      </li>
    <% } %>
  </ul>
  <%= Html.ActionLink("Add New Product", new { Action="New" }) %>
</asp:Content>

نلقي أيضا بإلقاء نظرة على JSP: كان عليهم تقديم "لغة تعبير" من أجل الحصول على بعض قوة التعليمات البرمجية في علامة JSP. والنتيجة هي حقا محرجة IMHO. يحتاج حتى إلى تعيين صريح (في XML، بالطبع) للوصول إلى وظيفة بسيطة من لغة التعبير هذه.

يرى هذه.

بالإضافة إلى نقاط Maucsch و Matt، لن يعني هذا أيضا أن الخادم سيضطر إلى تحميله في الذاكرة وتحليل الصفحة بأكملها تبحث عن "MVC:"؟ وليس هذا أحد الأسباب لعدم استخدام أجهزة الإنترنت؟

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