在 asp.net ascx 文件中,"<%#" 和 "<%=" 有什么区别?

3
我了解<%=用于返回字符串。
我似乎通常在我的.ascx文件中使用<%#
例如,以下内容有效: OnClientClick=<%# String.Format("return confirm('Are you sure you wish to delete barcode ({0})?');", Eval("BARCODE") ) %> 以下内容无效: OnClientClick=<%= String.Format("return confirm('Are you sure you wish to delete barcode ({0})?');", Eval("BARCODE") ) %>

看起来你的“这个可以工作”和“这个不行”完全一样...除非我漏看了什么。 - TLS
1个回答

5

<%# 表示其中有一个评估函数,该函数接收绑定数据并检查该数据中的列或属性是否在 Eval() 函数中。它专用于 WebForms 中的数据绑定。

<%= 仅期望可以转换为字符串的内容。它将会被 EVAL() 搞混。

最后是 MVC 中的新东西 <%@ - 它接收字符串输入,并对其进行 HTML 编码以尝试避免 XSS 攻击。


MVC标记不是'<%:'吗? - devio
<%: 在WebForms视图引擎中输出时不进行编码。切换到Razor,一切都是@ :) - blowdart

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