在代码中设置Page.Theme使得css文件被链接到两次

时间:2011-05-27 04:43:31

标签: asp.net css themes

在ASP.NET中,我们到目前为止只有一个主题,它在web.config中指定。我最近开始根据PreInit值在基页Request.Url.Host中切换主题,例如 domain1.com 是原始&amp;我们现在正在添加具有自己风格的 domain2.com 。由于这样做,所有<link rel="stylesheet...>标签都会在页面中注入两次。 domain1 总是在<head>部分的开头注入,然后是<title>标记,然后是所有样式表链接标记在PreInit页面中设置。

据我所知,ASP.NET会自动包含themes文件夹中的每个css文件,在页面生命周期中它会执行此操作吗?

1 个答案:

答案 0 :(得分:0)

好的,所以我发现了问题,我们附加到PreInit事件处理程序而不是覆盖页面上的OnPreInit方法,这导致了这种奇怪的副作用。似乎.NET在preinit中做了一些时髦的魔术来设置web.config中的主题默认值,如果在事件处理程序中而不是在方法中设置Theme属性,则不会完全覆盖它。这很可能是因为事件没有保证的执行顺序,所以它发生得太早或太晚。