<%#:%>在本地工作但在服务器上导致“表达预期”

时间:2014-01-13 20:25:48

标签: asp.net .net-4.0

这不是上述链接问题的重复 - 我完全清楚两个代码块之间的区别,只需阅读问题的第一行!

(这只有在“这个问题可能已经在这里得到答案:”仍然在上面显示时才有意义)


我最近发现了<%: %>内联代码块(自动Server.HtmlEncode输出),以及<%#: %>的数据绑定版本。

我有一个<asp:Repeater>,其中包含几个<%#: %>块,这些块在我的开发机器上本地工作,但在发布到服务器时会导致以下错误。

  

BC30201:预期的表达。

如果我将<%#:...%>的所有实例转换为<%#Server.HtmlEncode(...)%>

,则代码可以正常工作

在服务器上的代码中使用<%: %>可以工作。

IIS中的应用程序池(本地计算机和服务器)都设置为使用.NET4.0。

有什么明显可能导致错误发生在服务器上吗?


更新

感谢@vcsjones,他们正确地指出我在我的本地机器上安装了.Net 4.5(我不是这样的。)

This is the link他们帮助我们看到这种情况。

1 个答案:

答案 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解析器,如果它安装在本地。