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.

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top