这不是上述链接问题的重复 - 我完全清楚两个代码块之间的区别,只需阅读问题的第一行!
(这只有在“这个问题可能已经在这里得到答案:”仍然在上面显示时才有意义)
我最近发现了<%: %>
内联代码块(自动Server.HtmlEncode
输出),以及<%#: %>
的数据绑定版本。
我有一个<asp:Repeater>
,其中包含几个<%#: %>
块,这些块在我的开发机器上本地工作,但在发布到服务器时会导致以下错误。
BC30201:预期的表达。
如果我将<%#:...%>
的所有实例转换为<%#Server.HtmlEncode(...)%>
在服务器上的代码中使用<%: %>
,可以工作。
IIS中的应用程序池(本地计算机和服务器)都设置为使用.NET4.0。
有什么明显可能导致错误发生在服务器上吗?
更新
感谢@vcsjones,他们正确地指出我在我的本地机器上安装了.Net 4.5(我不是这样的。)
This is the link他们帮助我们看到这种情况。
答案 0 :(得分:4)
这是因为ASP.NET 4.5是在本地安装的,而不是在服务器上安装的。 <%#:
绑定语法为introduced in ASP.NET 4.5。 4.5之前存在<%:
和<%#
语法,这也是他们远程工作的原因。
.NET Framework 4.5是&#34;下降&#34;替换4.0,所以即使你的项目专门针对.NET 4.0,它仍然会使用4.5解析器,如果它安装在本地。