5

无意中我发现这篇文章是关于 ASP.NET 4.0 中的一个新特性:这些新括号中的表达式<%: Content %>应该呈现为 HTML 编码。

我已经在 FormView 中的数据绑定标签中尝试过这个,如下所示:

<asp:Label ID="MyLabel" runat="server" Text='<%: Eval("MyTextProperty") %>' />

但它不起作用: text 属性包含脚本标签(用于测试),但输出为空白。使用传统方式有效:

<asp:Label ID="MyLabel" runat="server"
    Text='<%# HttpUtility.HtmlEncode(Eval("MyTextProperty")) %>' />

我究竟做错了什么?

(旁注:我太笨了,找不到任何信息:谷歌拒绝搜索那个东西。MSDN 上的 VS2010 在线帮助提供了很多点击,但与我的搜索无关。Stackoverflow 搜索也是。我没有知道这些“事物”(我的意思是括号)是如何被正式称为具有更好的搜索词的。)

欢迎任何信息和其他链接和资源!

提前致谢!

4

2 回答 2

7

您正在混淆数据绑定表达式,它们具有语法<%#%>并与Eval(and Bind) 一起使用,而响应输出标记 ( <%=%>and <%:%>) 不能与 with 一起使用Eval

于 2010-05-24T18:59:49.423 回答
3

使用<%#: %>HTML 编码数据绑定语法。(注意 '#' 后面的 ':')。例如:

Text='<%#: Eval("PropertyToEval") %>'
于 2014-04-03T19:46:36.330 回答