Я пишу код на главной странице, и мне нужно знать, какая дочерняя страница (контент) отображается. Как я могу сделать это программно?
Как определить, какая дочерняя страница отображается на главной странице?
Ответ 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("_",".")
Ответ 6
Вы можете использовать:
Ответ 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
}