C# 如何确定母版页中请求的内容页

C# 如何确定母版页中请求的内容页,c#,asp.net,c#-4.0,master-pages,C#,Asp.net,C# 4.0,Master Pages,如何确定从母版页加载方法请求的内容页?对于ezample,我有使用母版页的内容页。如何确定用户从母版页请求的这三个页面中的哪一个 谢谢您可以使用ContentPlaceHolder的page属性从母版页确定内容页。以下代码假定母版页上的内容占位符称为MainContent // Page_Load in your master page code behind file protected void Page_Load(object sender, EventArgs e) { if (th

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


谢谢

您可以使用
ContentPlaceHolder的
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.
  }
}
因此,它通过其。例如,如果要了解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;
}

澄清一下:您的页面实际上并不是从母版页继承的,它们只是“使用”母版页。页面继承自System.Web.UI.Page。
母版
页面本身具有
页面
属性,因此您可以将
this.MainContent.Page
更改为
this.Page
,或者简单地将
页面
更改为
this.Page
。如果您获得了正确的“魔术字符串”值进行匹配,那么这就行得通了。如果可能的话(通常是这样),我更愿意针对
页面
对象的类型进行测试。我只是想添加一些额外的信息,以防OP需要关于ASPX文件而不是代码隐藏类的信息。