私は最初のMasterPageを配線しています。これは従来のアプリです。私はすべてのコンテンツページが継承する古いBasePageクラスを持っています。 System.Web.UI.Pageから継承しますが、コンテンツ自体はありません(.aspxファイルはありません)。これは、ユーザー認証/ロール付与メニュービルディングの束を実行します。私はこの機能を維持したいが、メニューを構築するために私のMasterPageのコントロールを設定するためにそれを使用する。私の人生では、コンテンツページでMasterType宣言なしでMasterPageプロパティを参照する方法を理解できません。ASP.NETのコンテンツページの一部ではないクラスからマスタページのプロパティにアクセスする
私のマスターページクラスはNIMS_Masterと呼ばれ、私は(ちょうど始めるしようとする)ことで、次のいます
<%@ MasterType VirtualPath="~/NIMS_Master.master" %>
public partial class NIMS_Master : System.Web.UI.MasterPage { public string MenuList { get; set; }
protected void Page_Load(object sender, EventArgs e)
{}
}
次のように
私はLogin.aspx.csで私のプロパティにアクセスすることができます
this.Master.MenuList = "this is the menu list";
しかし、私のBasePage.csでは、私はどこにもMasterType宣言を置くことができません。すべてのGoogle検索では、NIMS_Masterクラスをマスターとしてキャストする必要があることが示されていますが、私の人生を保存するためには機能しません。私はいくつかのことを試しましたが、私のNIMS_MasterクラスはBasePageに表示されません。
((this.Master)NIMS_Master).MenuList = "This is a menu list";
BasePage.cs私にApp_Codeディレクトリ内にあり、それが重要な場合は、私のマスターページファイルは、アプリケーションのルートです。私はそれを見たよう
おっと、そうです。私は私が知っている\t エラー型または名前空間名「NIMS_Masterは」(あなたがusingディレクティブまたはアセンブリ参照が不足している?)が見つかりませんでした。しかし、これは私がすることを試みるとき私が得るものです私のNIMS_Masterクラスを私のBasePageクラスに公開するためにここに単純なものがありません。 – fr0man