Owe*_*wen 7 asp.net asp.net-mvc
使用ASP.NET的视图引擎/模板aspx/ashx页面,吐出到屏幕的方式似乎是:
<%= Person.Name %>
Run Code Online (Sandbox Code Playgroud)
对于webforms来说很好,因为很多模型数据都以编程方式绑定到控件上.但是对于MVC,我们现在更多地使用这种语法.
我遇到的问题非常简单,但无论如何都很烦人.这似乎打破了标记,即:
<% foreach(var Person in People) { %>
<%= Person.Name %>
<% } %>
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎有很多开关标签!
MVC contrib中的其他视图引擎有一种吐出到屏幕的方法,不使用标准关键字打开和关闭脚本标记,例如"print,out,echo"即(brail示例):
<%
for element in list:
output "<li>${element}</li>"
end
%>
Run Code Online (Sandbox Code Playgroud)
现在,我说这看似微不足道,但这样看起来更具可读性.那么具有这种语法的MS有什么优势,而不提供输出方法呢?
干杯,克里斯.
Joh*_*udy 11
考虑这样的事情,而不是:
<% foreach(var Person in People) {
Response.Write(Person.Name);
} %>
Run Code Online (Sandbox Code Playgroud)
我相信这会奏效.(虽然我还没有测试过;我刚刚开始使用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任何地方使用完整方法<%= %>.
| 归档时间: |
|
| 查看次数: |
7090 次 |
| 最近记录: |