Подтвердить что ты не робот

Как определить, какая дочерняя страница отображается на главной странице?

Я пишу код на главной странице, и мне нужно знать, какая дочерняя страница (контент) отображается. Как я могу сделать это программно?

4b9b3361

Ответ 1

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

Ответ 2

Я использую это:

string pageName = this.ContentPlaceHolder1.Page.GetType().FullName;

Он перенастраивает имя класса в этом формате "ASP.default_aspx", но я считаю, что это легко анализировать для большинства целей.

Надеюсь, что это поможет!

Ответ 3

Лучше дать ContentPage уведомить MasterPage. Поэтому ContentPage имеет свойство Master и MasterPage не имеет свойства Child. Лучшая оценка в этом состоит в том, чтобы определить свойство или метод на MasterPage и использовать его с помощью свойства Master ContentPage.

Если вы используете этот метод, лучше всего явно указать имя класса для MasterPage. Это позволяет использовать MasterPage в ContentPage.

Пример:

//Page_Load
MyMaster m = (MyMaster)this.Master;

m.TellMasterWhoIAm(this);

Надеюсь, что это поможет.

Ответ 4

У меня была причина проверить дочернюю страницу на главной странице.

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

Если они не отображаются, отображается сообщение и кнопки отключены. Поскольку страница настроек является страницей контента на этой главной странице, я не хочу, чтобы сообщение отображалось на всех страницах настроек.

этот код работал у меня:

                //Only show the message if on the dashboard (first page after login)
                if (this.ContentPlaceHolder1.Page is Dashboard)
                {
                    //Show modal message box
                    mmb.Show("Warning Message");
                }

Ответ 5

Используйте код ниже.

Page.ToString().Replace("ASP.","").Replace("_",".")

Ответ 7

Вот мое решение проблемы (этот код входит в код за главной страницей):

if (Page.TemplateControl.AppRelativeVirtualPath == "~/YourPageName.aspx")
{
   // your code here
}

или немного более сложный, но менее читаемый:

if (Page.TemplateControl.AppRelativeVirtualPath.Equals("~/YourPageName.aspx", StringComparison.OrdinalIgnoreCase))
{
   // your code here
}

Ответ 8

Я делаю что-то подобное этому в моем проекте для динамического прикрепления файлов css на основе загружаемой страницы. Я просто получаю имя файла из запроса:

this.Request.Url.AbsolutePath

И затем извлеките из него имя файла. Я не уверен, что это сработает, если вы еще раз переписываете URL.

Ответ 9

Вы можете сделать это, получив последний segmant или запрос, и я буду именем формы

string pageName = this.Request.Url.Segments.Last(); 

if (pageName.Contains("EmployeeTermination.aspx"))
{

}

Ответ 10

Вы можете попробовать следующее:

<%: this.ContentPlaceHolder1.Page.GetType().Name.Split('_')[0].ToUpper() %>

Поместите этот код в теги title Site.Master

Ответ 11

Request.CurrentExecutionFilePath;

или

Request.AppRelativeCurrentExecutionFilePath;

Ответ 12

string s =   Page.ToString().Replace("ASP.directory_name_","").Replace("_aspx",".aspx").Replace("_","-");
        if (s == "default.aspx")
              { /* do something */ }

Ответ 13

так много ответов, которые я использую

<%if(this.MainContent.Page.Title != "mypagetitle") { %>
<%}%>

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

Ответ 14

Ниже код работал как charmed..try it

string PName = Request.UrlReferrer.Segments [Request.UrlReferrer.Segments.Length - 1];

Ответ 15

Page.Request.Url.PathAndQuery или одно из других свойств объекта Url Uri должно быть доступно вам из кода главной страницы.

Ответ 16

Вы можете проверить тип страницы в коде:

// Assuming MyPage1, MyPage2, and MyPage3 are the class names in your aspx.cs files:

if (this.Page is MyPage1)
{
  // do MyPage1 specific stuff
}
else if (this.Page is MyPage2)
{
  // do MyPage2 specific stuff
}
else if (this.Page is MyPage3)
{
  // do MyPage3 specific stuff
}