使用ASP.NET的视图引擎/模板aspx/ashx页面,吐出到屏幕的方式似乎是:
<%= Person.Name %>
对于webforms来说很好,因为很多模型数据都以编程方式绑定到控件上.但是对于MVC,我们现在更多地使用这种语法.
我遇到的问题非常简单,但无论如何都很烦人.这似乎打破了标记,即:
<% foreach(var Person in People) { %> <%= Person.Name %> <% } %>
这对我来说似乎有很多开关标签!
MVC contrib中的其他视图引擎有一种吐出到屏幕的方法,不使用标准关键字打开和关闭脚本标记,例如"print,out,echo"即(brail示例):
<% for element in list: output "
现在,我说这看似微不足道,但这样看起来更具可读性.那么具有这种语法的MS有什么优势,而不提供输出方法呢?
干杯,克里斯.
考虑这样的事情,而不是:
<% foreach(var Person in People) { Response.Write(Person.Name); } %>
我相信这会奏效.(虽然我还没有测试过;我刚刚开始使用MVC而且办公室里没有工具集.)
编辑:我显然错过了实际的问题...... :)
Microsoft确实提供了输出方法,但没有提供与您描述的语法类似的语法.输出方法是Response.Write()
.我不能直接回答这个问题(我相信你需要在MS上查看Scott Hanselmann :)),但我认为他们不想通过添加另一种语言让我们学习来复杂化脚本.我认为他们想利用开发人员已经知道的语言(C#,VB等).
编辑#2:我将以下内容放在评论中,回想起来(为了完整性),它应该是答案的一部分.
如果您前往ASP.NET上的Learn MVC站点,在视图教程(即链接)中,您将看到以下段落:
由于您
Response.Write()
经常打电话,Microsoft为您提供了调用该Response.Write()
方法的快捷 方式.清单3中的视图使用分隔符<%=
并%>
作为调用的快捷方式Response.Write()
.
从本质上讲,<%= %>
它是可接受的快捷方式Response.Write
,因此您可以在Response.Write
任何地方使用完整方法<%= %>
.