我正在使用母版页和内容页,但是现在我不想使用内容页上的母版页的CSS。 有很多类和css文件,因此无法覆盖它们,我只是选择不将它们包括在内容页面中。
那有什么可能的情况?
答案 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;
}}