这不是上述链接问题的重复-我完全意识到两个代码块之间的区别,只需阅读问题的第一行即可!
(如果“此问题可能已有答案:”仍在上方显示,则只有这样才有意义)
我最近发现了<%: %>
内联代码块(自动进行Server.HtmlEncode
输出),以及数据绑定版本的<%#: %>
。
我有一个包含几个<%#: %>
块的<asp:Repeater>
, 它在我的开发机器上运行正常,但是在服务器上发布时出现以下错误:
BC30201:需要表达式。
如果我将所有实例<%#:...%>
转换为<%#Server.HtmlEncode(...)%>
, 则代码可以正确工作。
在服务器上使用<%: %>
中的代码,可以正常工作。
IIS中的应用程序池(我的本地机器和服务器都是如此)设置为使用.NET4.0。
是否有任何明显的原因会导致服务器上出现错误?
更新
感谢@vcsjones,他们正确指出我在本地机器上安装了.Net 4.5(我肯定不是这种情况)。
他们提供的链接可以查看这种情况。
<%: %>
确实有效,这表明它正在运行.NET 4.0,不是吗? - freefaller<%: %>
自4.0以来就存在,但<%#: %>
是在4.5中添加的。 - vcsjonesHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full
,如果存在Release值,则已安装4.5。 - vcsjones