我在两个不同的服务器(2.0和3.5 .net版本)中部署我的asp.net。 .net 2.0中不支持某些标记。如何查看.net版本并忽略html标签?
例如,AJAX ..我想禁用.net 2.0中的<asp:ScriptManager>
答案 0 :(得分:0)
在项目属性下,您可以定位.Net 2.0框架。这将删除仅限.Net 3.5的引用。
答案 1 :(得分:0)
.aspx文件中的标记被静态编译为一系列对象实例。当相应的类型不存在时,不可能使用某些标签。
如果您需要同时定位ASP.NET 2.0和3.5,则需要在代码隐藏中使用ASP.NET 3.5的特定功能,并且仅在测试当前版本之后。使用3.5功能的代码必须采用特定的方法,如果您的版本低于2.0,则从不调用。 JIT编译器以方法粒度工作,因此您可以在未调用方法中使用未知类型。但以下情况不起作用:
void f() {
if (IsRunningUnderAspNet35) {
AspNet35Class xxx = new AspNet35Class();
}
}
但是以下工作:
void f() {
ICommonInterface i;
if (IsRunningUnderAspNet35) {
i = FactoryUsingAspNet35Class();
} else {
i = FactoryUsingAspNet20Class();
}
// use i
}
如果您使用的是引用AspNet 3.5的DLL,则需要动态加载它们,而不是通过静态项目引用加载它们。
注意:您最好试图说服服务器管理员安装ASP.NET 3.5。