2012-04-18 5 views
2

私は最近、Webアプリケーションで次のエラーが発生しました。ページY.ascxはユーザーコントロールX.ascxを使用できません

それは web.configファイルに登録し、ページと同じディレクトリに住んでいるされているため、ユーザー コントロール「をOtherControl.ascx」を使用することはできませんページ「ControlName.ascx」。

コントロールを移動してページに登録することでエラーを修正することができましたが、なぜこのエラーが発生するのか不思議です。

これは、明らかに、here(3/4が黄色のブロックに記載されている)のデザインとして設計されていますが、私の質問はなぜですか? Web.Configにコントロールを登録して同じディレクトリに配置すると、どのような問題が発生する可能性がありますか?

答えて

2

多分それは動的編集の問題です。 デフォルトでは、web.configの "compilation"要素の "batch"属性はtrueです。このような何か:コントロールがディレクトリでコンパイルする必要がある時はいつでもバッチ=「true」にして

<compilation defaultLanguage="c#" debug="false" batch="true" targetFramework="4.0" /> 

は、サーバーはそのディレクトリ内のすべてのコントロール(?すべてを)コンパイルします。

私は、宣言されたweb.configコントロールは他のコントロールと同じ方法でコンパイルされていないと言います(別のdllファイル、別のディレクトリにありますか?)ので、web.configと同じディレクトリ内のコントロールと他のコントロールをそれ以外の場合は、コンパイルとdllの重複が発生します。

+0

興味深いことに、バッチ属性を見ていきましょう。 –

関連する問題