3

スクリプト マネージャーを含む 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;
4

2 に答える 2

5

コード サンプルを正常にコンパイルできます。デザイナー ファイルをチェックして、問題がないことを確認してください。

編集:私が考えることができる唯一の他のことは、これがある種の参照の問題であるということです。System.Web.Extensions 参照は、ターゲット フレームワークの正しいバージョンを使用していますか? (.net 3.5 の場合は 3.5.0.0、2.0 の場合は 1.0.6xxx である必要があります)

于 2008-09-18T17:30:34.270 に答える
1

参照した System.Web.Extensions (v3.5.sth) ライブラリには、web.config (v.1.0.6sth) の参照と同じバージョンがないことがわかりました。dll (3.5) を古いバージョンの System.Web.Extensions に置き換えると、問題が解決しました。

于 2008-09-18T17:47:46.130 に答える