我提出了我认为是对的这个问题。由于这个问题已经回答了,我想我的答案会产生少量的反馈,所以我张贴了在这里它自己的问题。

有帮助吗?

解决方案

您是在正确的轨道上,但是我觉得你太过分了。平衡与HTML混合编码的地方流动,而不是在复杂它也没有创造标记汤。该不,我发现,最好的视图引擎这是火花

看看它,你会发现它解决了你在一个更加微妙和可读的方式提议的内容。

其他提示

您正在使用的标记来表示的代码。我的看法是:需要的代码,其中,只使用代码,这始终是更灵活。在需要的标记,使用标记。 本文恰恰说明了我的观点。 有时代码和标记之间的界限是模糊的,虽然。

我真的希望大家不要再处理XML作为一种编程语言。

也许你应该使用这个 “MVC语法” 代替,称为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" })

替换

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

此外看一看JSP:他们不得不为了引入“表达式语言”来获得一些代码在JSP标记的力量。其结果是好不尴尬恕我直言。它甚至需要显式映射(在XML,当然)从这个表达式语言访问的简单函数。

请参阅

除了maucsch和亚光的点,就不会这也意味着服务器必须加载到内存中,并解析寻找“MVC:”整个页面?并且不是的原因,一个不使用web表单?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top