ASP Master and Content Page - PullRequest
       46

ASP Master and Content Page

0 голосов
/ 24 октября 2018

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

Так, каковы возможные сценарии?

1 Ответ

0 голосов
/ 30 ноября 2018

Учитывая, что каждый эквивалентный метод между MasterPage и ContentPage всегда выполняется MasterPage всегда (см. здесь ), мы должны ввести изменение CSS внутри MasterPage .

При этом вы можете обнаружить имя ContentPage, фактически отображаемого внутри мастер-страницы, используя Page.AppRelativeVirtualPath.ToString () в вашем ContentPlaceHolder .

Затем вы можете изменить CSS внутри мастер-страницы, сохранив его в asp: Literal, включающем тег HTML-ссылки.

Например:

MasterPage.aspx

<head>
   <asp:Literal runat="server" ID="cssStyleSheet">
</head>
<body>
   <asp:ContentPlaceHolder ID="contentPageHolder" runat="server">
</body>

MasterPage.aspx.cs

public void ModifyCSS(){
string contentPageName = contentPageHolder.Page.AppRelativeVirtualPath.ToString();
int pos = contentPageName.LastIndexOf("/") + 1;
contentPageName = contentPageName.SubString(pos, contentPageName.Length -pos);

switch(contentPageName)
{
  case "Login.aspx": 
  cssStyleSheet.Text = @"<link rel='stylesheet' type='text/css' href='Styles/Login.css' />";

    break;

  case "Logout.aspx": 
  cssStyleSheet.Text = @"<link rel='stylesheet' type='text/css' href='Styles/Logout.css' />"; 
    break;       
}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...