在ASP.NET中,我们到目前为止只有一个主题,它在web.config中指定。我最近开始根据PreInit
值在基页Request.Url.Host
中切换主题,例如 domain1.com 是原始&amp;我们现在正在添加具有自己风格的 domain2.com 。由于这样做,所有<link rel="stylesheet...>
标签都会在页面中注入两次。 domain1 总是在<head>
部分的开头注入,然后是<title>
标记,然后是所有样式表链接标记在PreInit页面中设置。
据我所知,ASP.NET会自动包含themes文件夹中的每个css文件,在页面生命周期中它会执行此操作吗?
答案 0 :(得分:0)
好的,所以我发现了问题,我们附加到PreInit事件处理程序而不是覆盖页面上的OnPreInit
方法,这导致了这种奇怪的副作用。似乎.NET在preinit中做了一些时髦的魔术来设置web.config中的主题默认值,如果在事件处理程序中而不是在方法中设置Theme
属性,则不会完全覆盖它。这很可能是因为事件没有保证的执行顺序,所以它发生得太早或太晚。