1

それぞれが独自のディレクトリにあり、ファイルの背後にある単一のaspx.csコードを参照する一連のaspxページがあります。

私はサイトをプリコンパイルしようとしたことがなかったので、これは以前はうまく機能していました。IISは、各aspxを個別にコンパイルし、App_Codeのコンテンツにリンクする必要がありますが、一度に複数のaspxを参照することはできません。

Web配置プロジェクトを使用してWebサイトをプリコンパイルしようとしているので、複数のアセンブリで同じクラスが見つかったというエラーが発生し続けます。

コンパイル時に.aspxページのコントロールを見つけることができないため、aspx.csをApp_Codeにドロップしてサブクラス化することはできません。たぶん、.csのページですべてのコントロールを明示的に定義できますか?しかし、それはそれらが正しく配線されることを可能にするでしょうか?

複数の.aspxページから同じPageクラスを参照し、Webサイト全体をプリコンパイルできるようにする方法に関する他のアイデアはありますか?

編集: CodeFileBaseClassが私が望むものかもしれないように見えます。.csをApp_Codeにドロップし、すべてのページコントロールを明示的に定義してから、このクラスを、それを継承するaspxファイルでCodeFileBaseClassとして指定します。考え?

Edit2: 解決策を思いついたのですが、まだ承認済みとしてマークできないので、他の誰かがこの問題の解決策を思い付くことができるかどうかを確認したいと思います。

4

2 に答える 2

2

解決策は次のとおりです。

  1. .aspx.cs を取得し、新しいクラス名 ( FooPage)を使用して App_Code にコピーします。
  2. FooPage参照するすべてのサーバー側コントロールを明示的に宣言するように変更します。
  3. 元の .aspx.cs を参照した各 .aspx ファイルについて:
    1. それらの .aspx.cs ファイルを作成します。
    2. .aspx.cs のクラスは、App_Code に移動したクラスから継承されます
    3. CodeFileBaseClass="Namespace.To.FooPage".aspx で設定

これにより、ASP.net は、.aspx 内のすべてのサーバー側コントロールを基本クラスの保護されたメンバーに簡単に関連付けることができます。

これで、コード内に各クラスが 1 つだけになり、サイト全体をプリコンパイルできるようになりました。

于 2010-04-10T00:49:13.753 に答える
0

このフレームワークでプリコンパイルを実行できるとは思いません。

必要な機能を実行するユーザー コントロールを作成し、必要に応じて個々のページに含めることができます。

于 2010-04-09T03:54:17.810 に答える