基于服务器控件动态加载样式表

Dynamically loading style sheets based on Server Controls

提问人:sammarcow 提问时间:4/26/2011 更新时间:4/27/2011 访问量:228

问:

我有一个网站,需要根据模型加载基本样式组件(根据用户输入在后端 SQL Server 上确定)

这个概念是,这个网站可以包含参数化的外观和感觉组件,这些组件是根据登录页面预定义的。

任何人都能提供如何实现这一目标的基本想法或示例吗?一个想法是将样式参数存储在数据库中,但是样式表如何提取它。另一个想法是让这些预定义的样式表对应于登陆页面,但这需要一个服务器控件,并且我们无法在链接样式表中实现这一点。

asp.net CSS 参数传递 using 指令

评论

0赞 sammarcow 4/26/2011
这不清楚:网站正在使用 asp.net 和 nHibernate 来建模后端 sql 服务器

答:

0赞 Gregory A Beamer 4/27/2011 #1

样式表不能从数据库中提取,但您当然可以创建一个处理程序来提供 CSS 文件,而不是指向物理 CSS 文件。

然而,这里更大的问题更像是一个商业问题。在编码之前,您必须弄清楚控件或布局到 CSS 文件的映射。如果你不这样做,我几乎可以保证,当你的系统无法处理需求时,你会在路上遇到一些痛苦。如果您不想太痛苦,请提前进行设计工作。

现在,回到这个问题。“基于着陆页”?您的意思是不同的用户点击不同的登录页面吗?如果是这样,可以将样式应用于模板(ASP.NET 简单),或者您可以创建自定义配置文件提供程序以将样式与用户结合。我会仔细考虑这些选择。将文件存储为文件或存储在数据库中是一个单独的问题。

评论

0赞 sammarcow 4/27/2011
您能解释一下“serve up”的用法吗 这个解决方案真的会把文件写到服务器,还是只是提供文本信息,你能提供参考吗?我同意这更像是一个设计问题。一个快速的解决方案是:在aspx中使用以下代码:'<link id=“myCSS” rel=“stylesheet” type=“text/css” runat=“server” />' 在代码后面使用'myCSS.Attributes.Add(“href”, “MyStyleFile.css”);在代码后面,MyStyleFile是从存储在cookie中的数据中提取的动态参数。CSS 样式由第三方提供,以向多个客户提供 1 个网站和品牌。
0赞 Gregory A Beamer 4/27/2011
有多种方法可以解决这个问题,具体取决于您的要求。您可以拥有 CSS 文件并动态决定设置的内容。这可以通过以编程方式更改链接标记或使用 HTTP 处理程序(自定义 AXD 文件)并以这种方式提供它来完成。Microsoft 在他们的一些代码中使用了后者。