I(今のところ、多くの同じ名前空間になります)なぜ私のaspxデザイナーファイルがユーザーコントロールを間違って参照していますか?
Ortund.Project.UserControls.FooControl
Ortund.Project.UserControls.BarControl
私は、これらのコントロールが正常に動作するようになっている、これらは正しく私のweb.configファイルで(私はこれを知っている参照してきた以下のユーザーコントロールを持っていますページ上で)。少なくとも、それは、ページのデザイナファイルが正しく、上記の名前空間にそれらを参照するかどう
<div>
<ortund:Foo runat="server" ID="oFoo" />
<ortund:Bar runat="server" ID="oBar" />
</div>
:
<pages>
<controls>
<add tagPrefix="ortund" tagName="Foo" src="~/UserControls/FooControl.ascx" />
<add tagPrefix="ortund" tagName="Bar" src="~/UserControls/BarControl.ascx" />
</controls>
</pages>
これは、次のように私のマークアップのコントロールを使用することができます。
代わりに、私は私のデザイナーのファイル内で検索すると、これは次のとおりです。今
/// <summary>
/// oFoo control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UserControl oFoo;
/// <summary>
/// oBar control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.UserControl oBar;
、私が行くと、それを変更するが、ファイル以来、自動生成されることができ、それだけのために再び変化する傾向があります明白な理由はありません。その結果、ユーザーコントロールで使用できるパブリックフィールドにアクセスすることはできませんが、これは機能上の大きな問題です。
なぜ私のデザイナーファイルはそんなにばかげていて、どうしてばかげて間違っていて、どうすれば修正できますか?
残念ながら私は他のどの情報を提供するのか分かりませんが、これらのフィールド宣言を自分のコードビハインドファイルに移動したことで問題が解決されたことを確認できます。 – Ortund
@Ortund、それは回避策ですが、少なくともそれはあなたのブロックを解除します)===確認するべきこと(a)あなたのアプリケーションレベルweb.configに宣言はありますか? (b)そこにweb.configがあり、そこにはページがあるフォルダとの間にフォルダがありますか?おそらくセクションを変更/クリアしていますか? (c)同じ名前の他のクラスはありますか?私は上記のすべての奇妙な原因を見てきた=( –
Rob