Volete utilizzare questa vista sintassi di ASP.NET MVC?
-
23-08-2019 - |
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.
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?