Главные страницы - Получение имени вызывающей страницы - PullRequest
0 голосов
/ 09 июня 2009

Может кто-нибудь сказать мне, как получить имя дочерней страницы, вызываемой в сценарии Главной страницы. Например, если у меня есть следующая мастер-страница:

<%@ 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 (поскольку эта мастер-страница может быть унаследована более чем одной страницей aspx)? *

Ответы [ 5 ]

1 голос
/ 09 июня 2009

Переходя с вашими комментариями, я вижу пару вариантов:

1) На вашей странице входа в систему при отсутствии обратной передачи проверьте Referrer - это будет страница, которая отправила вас на страницу входа ( Request.UrlReferrer ), сохраните ее в сеансе для отправить обратно свои данные для входа, а затем отправить пользователя обратно.

2) Используйте стандартные функции ASP.NET для обработки входа / перенаправления (которые в основном используют ту же систему, что и 1).

1 голос
/ 09 июня 2009

Это вопрос, аналогичный тому, что вы спрашиваете, но я бы обратил внимание на принятый ответ, попытка выяснить дочернюю страницу на главной странице, вероятно, не очень хорошая идея для дизайна.

1 голос
/ 09 июня 2009

Я бы уведомил в другом направлении. Добавьте свойства на свою главную страницу, затем установите их на страницах содержимого.

В вашем мастере:

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

    public string PageSection { get; set; }
}

В вашем .aspx добавьте эту директиву:

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

Затем в вашем .aspx.cs установите значение свойства следующим образом:

Master.PageSection = "about";
0 голосов
/ 09 июня 2009

Исходя из кода в MasterPage, свойство Page.AppRelativeVirtualPath сообщит вам путь.

0 голосов
/ 09 июня 2009

Просто используйте элемент «Страница» главной страницы

...