Учитывая, что каждый эквивалентный метод между 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;
}}