母版页 - 获取调用页面名称

时间:2009-06-08 22:11:08

标签: c# asp.net vb.net master-pages

有人可以告诉我如何获取在母版页方案中调用的子页面的名称。例如,如果我有以下主页:

<%@ Master Language="VB" CodeFile="MasterPage.master.vb" Inherits="MasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
    <asp:ContentPlaceHolder ID="cphMainContent" runat="server">
    </asp:ContentPlaceHolder>
</body>
</html>

我创建了一个名为Test.aspx的页面,它继承了这个母版页,我怎么能从母版页知道已经请求了Test.aspx(因为这个母版页可以被超过1个aspx页面继承)?

5 个答案:

答案 0 :(得分:1)

这是你要问的similar question,但我会注意接受的答案,试图从母版页中找出子页面可能不是一个好的设计理念。

答案 1 :(得分:1)

我会向另一个方向通知。将属性添加到母版页,然后从内容页面设置它们。

在你的主人:

public partial class PortalMaster : System.Web.UI.MasterPage
{

    public string PageSection { get; set; }
}

在.aspx中添加此指令:

<%@ MasterType VirtualPath="PortalMaster.master" %>

然后在.aspx.cs中设置属性值,如下所示:

Master.PageSection = "about";

答案 2 :(得分:1)

继续你的评论,我看到了几个选择:

1)在您的登录页面中,在非回发上,检查推荐人 - 这将是发送到登录页面(Request.UrlReferrer)的页面,将其存储在会话中以回发他们的登录信息详细信息,然后将用户发回。

2)使用standard features of ASP.NET来处理登录/重定向(基本上使用与1相同的系统)。

答案 3 :(得分:0)

只需使用母版页的“Page”成员

即可

答案 4 :(得分:0)

从母版页背后的代码中,Page.AppRelativeVirtualPath属性会告诉您路径。