Question

Je proposais ce que je pense est une meilleure syntaxe pour ASP.NET MVC vues dans cette question. Depuis que cette question a été répondu, je pense que ma réponse va générer peu de commentaires, donc je suis annonce comme sa propre question ici.

Était-ce utile?

La solution

Vous êtes sur la bonne voie, mais je pense que vous êtes allé trop loin. L'équilibre est le mélange avec le code html où il coule et pas trop compliquer et pas non plus la création soupe de tags. Le moteur meilleur avis que j'ai trouvé que le fait est Spark .

Jetez un coup d'oeil et vous trouverez adresse ce que vous proposez d'une manière plus subtile et plus lisible.

Autres conseils

Vous utilisez des balises pour représenter le code. Mon avis est: où le code est nécessaire, il suffit d'utiliser le code, ce qui est toujours plus flexible. Là où le balisage est nécessaire, utiliser des balises. Cet article explique précisément mon point. Parfois, la ligne entre le code et le balisage est floue, cependant.

Je souhaite vraiment que les gens cessent de traiter XML comme langage de programmation.

Peut-être que vous devriez utiliser ce "syntaxe MVC" à la place, appelée 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" })

remplace

<%@ 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>

Jetez aussi un coup d'œil à JSP: ils devaient présenter un « langage d'expression » afin d'obtenir une partie de la puissance du code dans le balisage jsp. Le résultat est vraiment à mon humble avis maladroit. Il a besoin même un mappage explicite (en XML, bien sûr) pour accéder à une simple fonction de ce langage d'expression.

Voir cette .

En plus de maucsch et points de Matt, ne serait pas ce que cela signifie aussi que le serveur devrait se charger en mémoire et analyser la page entière à la recherche de « mvc: »? Et est-ce pas une des raisons de ne pas utiliser webforms?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top