基于版本的ASP.net忽略标记

基于版本的ASP.net忽略标记,asp.net,Asp.net,我正在两个不同的服务器(2.0和3.5.net版本)中部署我的asp.net。某些标记在.net 2.0中不受支持。如何检查.net版本并忽略html标记 例如,AJAX。。我想在.net 2.0中禁用,在项目属性下,您可以针对.net 2.0框架。这将删除仅对.Net 3.5的引用。将.aspx文件中的标记静态编译为一系列对象实例化。当相应类型不存在时,无法使用某些标记 如果需要同时针对ASP.NET 2.0和3.5,则需要在代码隐藏中使用ASP.NET 3.5的特定功能,并且仅在测试当前版本

我正在两个不同的服务器(2.0和3.5.net版本)中部署我的asp.net。某些标记在.net 2.0中不受支持。如何检查.net版本并忽略html标记


例如,AJAX。。我想在.net 2.0中禁用
,在项目属性下,您可以针对.net 2.0框架。这将删除仅对.Net 3.5的引用。

将.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.NET3.5