Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将可自定义外观应用于ASP.NET网站?_C#_Asp.net_Skin - Fatal编程技术网

C# 如何将可自定义外观应用于ASP.NET网站?

C# 如何将可自定义外观应用于ASP.NET网站?,c#,asp.net,skin,C#,Asp.net,Skin,我正在编写一个SaaS应用程序,其web前端是用ASP.NET编写的。我不是一个很好的设计师,我的ASP.NET知识还没有达到专家水平——我通常专注于服务器端的东西——但我有一个基本的母版页和样式表,可以实现这一点 现在,我想让我的客户能够使用自己的样式表、颜色、背景图片等定制他们的网站,这样他们的客户就可以登录到他们的门户网站mycustomer.mydomain.com,查看“mycustomer”选择的皮肤 根本不知道怎么做。如何操作?如果您允许客户指定自己的CSS(作为文件或在页面的某些

我正在编写一个SaaS应用程序,其web前端是用ASP.NET编写的。我不是一个很好的设计师,我的ASP.NET知识还没有达到专家水平——我通常专注于服务器端的东西——但我有一个基本的母版页和样式表,可以实现这一点

现在,我想让我的客户能够使用自己的样式表、颜色、背景图片等定制他们的网站,这样他们的客户就可以登录到他们的门户网站
mycustomer.mydomain.com
,查看“mycustomer”选择的皮肤


根本不知道怎么做。如何操作?

如果您允许客户指定自己的CSS(作为文件或在页面的某些文本框中)。您只需将其保存为虚拟目录中的.css文件,并在
Page\u Load
Page\u Init
事件期间将其添加到您的页面。您需要将标签推送到页面的页眉

像这样:

// Define an HtmlLink control.
HtmlLink myHtmlLink = new HtmlLink();
myHtmlLink.Href = "~/CustomersCustomStyleSheet.css";
myHtmlLink.Attributes.Add("rel", "stylesheet");
myHtmlLink.Attributes.Add("type", "text/css");

// Add the HtmlLink to the Head section of the page.
Page.Header.Controls.Add(myHtmlLink);

+哇,那容易吗?好的,那么这与母版页中声明的默认样式表有什么关系呢?如果发生冲突,页面如何知道使用自定义样式表而不是默认样式表?如果你说你只能有一个样式表-这是否意味着客户必须为我在默认样式表中定义的每个属性提供样式表值?是的,作为默认行为,它将级联两个CSS,然后应用它。。所以这是你必须处理的事情。您可以执行类似于have
if
s的操作,以检查用户是否有自定义项。。如果他没有加载你通常的CSS,那么为这种情况保留一个不同的CSS,它没有为可定制的样式定义样式,然后加载用户的CSS。您还可以尝试使用
!重要信息