在ASP.NET MVC中,<% %>和<%= %>有什么区别?

15

这肯定是个重复的问题,但我仍然在努力寻找它。 - Mehrdad Afshari
Will:搜索标点符号很困难。在 Meta 上进行了讨论。 - Mehrdad Afshari
那么 <%# %> 呢!?那个简直就是疯了。 - Kobi
请看下面的帖子。搜索“asp.net蜜蜂蜇”可以找到一些匹配项:http://stackoverflow.com/search?q=asp.net+bee+stings - Ahmad Mageed
很少有人知道有关蜜蜂蜇的事实... - Josh
显示剩余5条评论
4个回答

35

<% %>是一个通用的代码块。

<%= 表达式 %>等同于 <% Response.Write(表达式); %>


8

这很令人困惑,需要反复学习才能掌握。

<%= 语法用于评估表达式,其返回值意图包含在HTML标记中。例如:

<%= DateTime.Now.ToShortDateString() %>

这将在HTML标记中包含当前日期。

<% 用于内联语句,您可以在页面渲染过程的特定位置执行一个或多个命令。我以前使用Html Helpers通过使用<%来执行帮助程序方法。例如,

<% Html.TextBox("txtBox"); %>

请注意,在C#代码中使用的语句必须以分号结尾。
编辑:已删除有关Html助手和void返回值的错误细节。

实际上,几乎所有的Html Helpers都返回一个字符串而不是写入到Response对象中 - <%= Html.TextBox("txtBox") %>。这使您可以嵌套辅助方法。 - Iain Galloway
3
<% Html.TextBox("txtBox"); %>默默地丢弃返回值,不输出任何内容。 - Mehrdad Afshari

3

<%= %>标签会输出其中的代码结果,而<% %>则只会执行其中的代码。


3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接