我经常在我的ASPX控件上使用绑定表达式属性来构建内容,包括静态文本,资源字符串以及从任何地方更加动态地加载字符串。
因为我使用一些JavaScript从属性生成HTML,所以我在绑定表达式属性的某些资源表达式之间使用了一些编码的HTML实体,我遇到了Visual Studio的奇怪行为。
以下是发生的基本示例:
它显示“常量新行”错误,但它编译并运行没有问题。它只发生在绑定表达式上,并且仅在某些其他代码之间的字符串上使用HTML实体时才会发生。
虽然我怀疑为什么会发生这种情况,但我正在寻找进一步的解释。
我发现我可以使用真正的字符而不是HTML实体,因为ASP.NET在任何情况下都会将<
转换为<
。问题解决了,因为属性中没有HTML,但我仍然想知道为什么会这样。
在Windows 7 x64上使用Visual Studio 2013。
编辑:请忽略此问题的第一条评论,作为我创建此问题时略有不同的示例和情况。
答案 0 :(得分:1)
有两个绑定表达式,<%= %>
用于分配值,<%# %>
用于绑定值。
你应该改变
Text='<%# "<&>" %>'
到
Text='<%= "<&>" %>'
由于<%#
需要Bind或Eval方法而不是常量字符串。