Domanda

ho proposto quello che penso è una sintassi migliore per la vista ASP.NET MVC in questa domanda . Dal momento che la domanda è stato risposto, penso che la mia risposta genererà po 'di feedback, così mi distacco come propria domanda qui.

È stato utile?

Soluzione

Sei sulla strada giusta, ma penso che si è andato troppo lontano. Il saldo è mescolare il codice con il html dove scorre e non più di complicare e anche senza creare zuppa tag. Il miglior motore di visualizzazione che ho trovato che fa questo è Spark .

Date un'occhiata e troverete affronta ciò che si sta proponendo in un modo più sottile e leggibile.

Altri suggerimenti

Si sta utilizzando il markup per rappresentare il codice. La mia opinione è: dove è necessario il codice, basta utilizzare il codice, che è sempre più flessibile. Quando è necessario markup, usare marcatura. questo articolo spiega proprio il mio punto. A volte il confine tra codice e markup è sfocata, però.

Vorrei davvero che la gente avrebbe smettere di trattare XML come linguaggio di programmazione.

Forse si dovrebbe utilizzare questo "sintassi MVC", invece, chiamato 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" })

sostituisce

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

Anche prendere un'occhiata a JSP: hanno dovuto introdurre un "Expression Language" al fine di ottenere una parte della potenza di codice nel markup jsp. Il risultato è davvero imbarazzante IMHO. Ha bisogno anche di un mapping esplicito (in XML, ovviamente) per accedere ad una funzione semplice da questo Expression Language.

questo .

Oltre a maucsch e punti di Matt, non sarebbe questo anche significare che il server avrebbe dovuto caricare in memoria e analizzare l'intera pagina alla ricerca di "MVC:"? E non è che uno dei motivi di non usare WebForms?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top