题
我提出了我认为是对的这个问题。由于这个问题已经回答了,我想我的答案会产生少量的反馈,所以我张贴了在这里它自己的问题。
解决方案
您是在正确的轨道上,但是我觉得你太过分了。平衡与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表单?
不隶属于 StackOverflow