使用ScriptManager时解析器错误

时间:2020-03-06 14:22:27  来源:igfitidea点击:

我有一个ASP.NET页,上面有一个脚本管理器。

<form id="form1" runat="server">
    <div>
        <asp:ScriptManager EnablePageMethods="true" ID="scriptManager2" runat="server">
        </asp:ScriptManager>
    </div>
</form>

该页面将覆盖一个抽象属性以返回ScriptManager,以使基础页面能够使用它:

public partial class ReportWebForm : ReportPageBase
{
    protected override ScriptManager ScriptManager
    {
        get { return scriptManager2; }
    }

    ...
}

和基本页面:

public abstract class ReportPageBase : Page
{
    protected abstract ScriptManager ScriptManager { get; }

    ...
}

运行项目时,出现以下解析器错误:

解析器错误消息:基类包含字段'scriptManager2',但其类型(System.Web.UI.ScriptManager)与控件的类型(System.Web.UI.ScriptManager)不兼容。

我该如何解决?

更新:
设计器文件的脚本管理器部分是:

protected global::System.Web.UI.ScriptManager scriptManager;

解决方案

我可以很好地编译代码示例,我们应该检查设计器文件以确保一切正常。

编辑:我唯一能想到的是这是某种参考问题。System.Web.Extensions参考是否使用了针对我们目标框架的正确版本? (对于.net 3.5,应为3.5.0.0;对于2.0,应为1.0.6xxx)

我发现引用的System.Web.Extensions(v3.5.sth)库与web.config(v.1.0.6sth)中的引用没有相同的版本。用旧版本的System.Web.Extensions替换dll(3.5)解决了该问题。