2011-02-23 84 views
0

我正在用ASP.NET编写的Web前端编写一个SaaS应用程序。我不是一个设计师,我的ASP.NET知识还没有达到专家水平 - 我通常专注于服务器端的东西 - 但我有一个基本的母版页和样式表,它们可以做到这一点。如何将自定义皮肤应用于ASP.NET网站?

现在我想给我的客户提供自定义他们自己的网站样式,颜色,背景图片等的能力,以便他们的客户登录到他们的门户mycustomer.mydomain.com,并看到“mycustomer”选择。

有没有最微弱的线索如何做到这一点。怎么样?

回答

1

如果您允许客户指定他自己的CSS(无论是作为文件还是在页面中的某个文本框中)。您可以将其简单地保存为.css文件在虚拟目录中,并在Page_LoadPage_Init事件中将其添加到您的页面。你需要一个Link标签推到页眉页

像这样:

// 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); 
+0

+1哇,这容易吗?好的,那么在母版页中声明的默认样式表有什么作用?如果发生冲突,页面如何知道使用自定义样式表而不是默认值?如果你说你只能有一个样式表 - 这是否意味着客户必须为我在默认样式表中定义的每个属性提供样式表值? – 2011-02-23 17:17:38

+0

好吧,作为一种默认行为,它会级联CSS并应用它..所以这是你必须处理的事情。你可以做很多事情来检查用户是否有自定义的..如果他没有加载你的平常的CSS保持不同的CSS的情况下,不定义样式定制的样式,然后加载用户的CSS。你也可以试用'!important' – 2011-02-23 17:24:04

+0

谢谢你的帮助! – 2011-02-23 17:30:58