Você usaria esta sintaxe vista ASP.NET MVC?
-
23-08-2019 - |
Pergunta
propus o que eu acho que é uma melhor sintaxe para vistas ASP.NET MVC em esta questão . Desde essa pergunta foi respondida, acho que a minha resposta irá gerar pouco retorno, por isso estou postando-o como a sua própria pergunta aqui.
Solução
Você está no caminho certo, mas acho que você foi longe demais. O saldo é misturar o código com o html onde flui e não mais de complicá-la e também não criar tag sopa. A melhor ferramenta de vista que eu encontrei que faz isso é faísca .
Dê uma olhada e você vai encontrá-lo aborda o que você está propondo de forma mais sutil e legível.
Outras dicas
Você está usando a marcação para representar código. Minha opinião é: onde é necessário código, basta usar o código, que é sempre mais flexível. Se for necessária marcação, o uso de marcação. Este artigo explica precisamente o meu ponto. Às vezes, a linha entre o código e marcação é embaçada, no entanto.
Eu realmente gostaria que as pessoas parassem de tratar XML como uma linguagem de programação.
Talvez você deve usar este "MVC sintaxe" em vez disso, chamou 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" })
substitui
<%@ 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>
Também dê uma olhada em JSP: eles tiveram que introduzir um "Expression Language", a fim de obter algum do poder de código no jsp marcação. O resultado é realmente IMHO estranho. Ele ainda precisa de um mapeamento explícito (em XML, é claro) para acessar uma função simples a partir deste Expression Language.
este .
Além de maucsch e pontos de Matt, não seria isso também significa que o servidor teria que carregar na memória e analisar toda a página procurando "mvc:"? E não é que uma das razões para não usar webforms?