ASP母版页和内容页

时间:2018-10-24 08:19:45

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

我正在使用母版页和内容页,但是现在我不想使用内容页上的母版页的CSS。 有很多类和css文件,因此无法覆盖它们,我只是选择不将它们包括在内容页面中。

那有什么可能的情况?

1 个答案:

答案 0 :(得分:0)

请记住,MasterPage和ContentPage之间的所有等效方法总是在稍后由MasterPage执行(请参见here),我们必须在MasterPage中引入CSS更改

话虽如此,您可以使用 ContentPlaceHolder 中的 Page.AppRelativeVirtualPath.ToString()检测母版页中实际显示的ContentPage的名称。

>

然后,您可以修改母版页中的css,将其保存在包含HTML链接标记的asp:Literal中。

例如:

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;       
}}