asp.net - 在代码中设置 Page.Theme 会使 css 文件链接到两次

标签 asp.net css themes

在 ASP.NET 中,到目前为止我们只有一个主题,它是在 web.config 中指定的。最近开始在底页切换Theme PreInit基于 Request.Url.Host值,假设 domain1.com 是原始的,我们现在添加具有自己样式的 domain2.com。自从这样做以来所有<link rel="stylesheet...>标签被注入(inject)页面两次。 domain1 总是在 <head> 的最开始注入(inject)的节,然后是 <title>标记,然后是所有样式表链接标记,再次为其在页面 PreInit 中明确设置的主题。

据我了解,ASP.NET 会自动将每个 css 文件包含在主题文件夹中,它会在页面生命周期的哪个事件中执行此操作?

最佳答案

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

关于asp.net - 在代码中设置 Page.Theme 会使 css 文件链接到两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6147922/

相关文章:

css - 特定断点处元素的边距在 Tailwind 中不起作用

css - 如何在现有主题的基础上在 Vaadin 中创建新主题?

javascript - 如何从父页面获取查询字符串?

c# - ASP.NET - 是否可以将用户代理放入对象中?

css - 如何在 div 的中间(水平)创建边框?

javascript - 将 cssPIE 用于 IE8 中的 js 选项卡内容未呈现

flutter - 使用预制的 flutter 主题时如何设置默认字体系列?

asp.net - VS 2008 中“事件”选项卡随机出现和消失

c# - 如何删除 ListView 中的项目?

html - 哪种CSS样式处理按钮上的点击事件?除了悬停