2012-01-15 87 views
0

如何确定从母版页加载方法请求哪个内容页?例如,我拥有使用母版页的内容页。如何确定由这三个页面中的哪一个用户从母版页?如何确定在母版页中请求的内容页面

感谢

+1

只是为了澄清:你的网页实际上并不从主网页,他们只是“使用继承'一个母版页。页面从System.Web.UI.Page继承。 – 2012-01-15 21:21:26

回答

1

您可以通过使用ContentPlaceHolder's Page属性决定从母版页的内容页面。以下代码假定主页上的内容占位符被称为MainContent

// Page_Load in your master page code behind file 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (this.MainContent.Page is _Default) 
    { 
    // The default page 
    } 

    if (this.MainContent.Page is About) 
    { 
    // The About page. 
    } 
} 
+0

'Master'页面本身具有'Page'属性,因此您可以将'this.MainContent.Page'更改为'this.Page'或者简单地'Page'。 – 2012-01-15 21:38:47

1

master page is actually a subclass of System.Web.UI.UserControl,因此它具有通过其Page property一个参考页。例如,如果你想知道ASPX文件和/或它的文件夹,您可以使用下面的代码:

protected void Page_Load(object sender, EventArgs e) 
{ 
    // Something like ~/Folder/Default.aspx 
    string file = Page.AppRelativeVirtualPath; 

    // Something like ~/Folder/ 
    string folder = Page.AppRelativeTemplateSourceDirectory; 
} 
+0

这会工作,假设你得到正确的'魔术串'值来匹配。如果可能(通常是这样),我宁愿测试一下'Page'对象的类型。 – 2012-01-15 21:39:48

+0

当然,这就是[Hans'answer](http://stackoverflow.com/a/8871025/4830)所示。我只是想添加一些额外的信息,以防OP需要关于ASPX文件而不是代码隐藏类的信息。 – 2012-01-15 22:02:47

相关问题