2012-03-20 13 views
1

Site.Masterページで、外部XMLファイルからデータを取り出して追加のページコンテンツを生成するコントロールを作成しました。このコントロールは、XMLファイルから正しいコンテンツを選択するためにロードされたコンテンツページを知ることに依存しています。コントロールのメソッドは、Site.MasterのPage_Loadイベントハンドラから起動されます。コンテンツページからASP.NETのSite.Masterページにパラメータを取得する方法は?

問題は、(Site.Masterページから)どのコンテンツページが読み込まれたかを判断する方法がわからないことです。私はそれぞれのコンテンツページで隠しフィールドを使用しようとしましたが、同じものを持っているので_Defaultで競合が発生します。私は彼らに異なる名前を付けることができましたが、今では、醜い見た目の論理ブロックがなければ、それを処理する方法が見えません。このために良いソリューションが見つからない場合は、すべてのコンテンツページのPage_Loadハンドラからコントロールを呼び出す必要があります。恐ろしい解決策ではないと思いますが、できる限りコードの重複を避けようとしています。あなたは常にHttpContextを経由して(でも、静的な文脈で)現在のページへの参照を取得することができます

+0

はあなたがから名前を取得することができますロードしたコンテンツのためのセッションを設定することはできませんマスター –

答えて

2

public partial class SiteMaster : System.Web.UI.MasterPage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Page p = HttpContext.Current.CurrentHandler as Page; 
    } 
} 
+0

これは素晴らしい動作しています。私はp.Titleにアクセスし、それを使ってxmlファイルの属性にマッチさせることができます。ありがとう! –

関連する問題