2012-03-20 99 views
1

我在我的Site.Master页面上创建了一个控件,该页面从外部XML文件中提取数据以生成其他页面内容。此控件依赖于知道加载了哪个内容页面,以便从XML文件中选择正确的内容。该控件的方法从Site.Master中的Page_Load事件处理程序启动。如何从ASP.NET的Site.Master页面获取内容页面的参数?

我遇到的问题是我不知道如何确定(从Site.Master页面)哪个内容页面被加载。我曾尝试在每个内容页面上使用隐藏字段,但由于它们具有相同的效果,因此会在_Default中导致冲突。我可以给他们不同的名字,但现在我看不到一个方法来处理,没有一些丑陋的看逻辑块。如果我找不到一个好的解决方案(我肯定必须存在),我必须解决从每个内容页面的Page_Load处理程序调用控件。我想这不是一个可怕的解决方案,但我尽量避免代码重复。

+0

你不能设置会话其负载,在那里你可以从名字主人 – 2012-03-20 12:48:50

回答

2

你可以随时通过HttpContext参考当前页面(即使在静态的情况下):为内容

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文件中的属性。谢谢! – 2012-03-20 14:01:12