【问题标题】:How to apply customizable skins to an ASP.NET web site?如何将可自定义的皮肤应用到 ASP.NET 网站?
【发布时间】:2011-07-02 20:10:18
【问题描述】:

我正在编写一个带有用 ASP.NET 编写的 Web 前端的 SaaS 应用程序。我不是一名设计师,而且我的 ASP.NET 知识还没有达到专家级 - 我通常专注于服务器端的东西 - 但我有一个基本的母版页和样式表,它们可以解决问题。

现在我想为我的客户提供使用他们自己的样式表、颜色、背景图片等自定义网站的能力,以便他们的客户将在mycustomer.mydomain.com 登录他们的门户并看到“mycustomer”的皮肤已经选择了。

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

【问题讨论】:

    标签: c# asp.net skin


    【解决方案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);
    

    【讨论】:

    • +1 哇,这么简单?好的,那么这对我在母版页中声明的默认样式表有什么作用?如果发生冲突,页面如何知道使用自定义样式表而不是默认样式表?如果你说你只能有一个样式表——这是否意味着客户必须为我在默认样式表中定义的每个属性提供样式表值?
    • 好吧,是的,作为默认行为,它会级联两个 CSS,然后应用它..所以这是你必须处理的事情。你可以做一些事情,比如让ifs 来检查用户是否有一个自定义的.. 如果他没有加载你常用的 CSS,为这种情况保留一个不同的 CSS,它没有为自定义样式定义样式,然后加载用户的CSS。你也可以尝试!important
    猜你喜欢
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    相关资源
    最近更新 更多