自定义 MasterPage 类停止使用 Bootstrap 5

问题描述

我有一个 Asp.net WebForm 应用程序,我正在使用 MasterPages。我的 MasterPage 代码隐藏类继承自一个自定义类,该类继承自 MasterPage 基类。这个自定义母版页类维护不同的值,包括用户状态,它在我的母版页上像这样使用,

<% if( UserState.Level == UserLevel.Admin)
{ %>
    // Load Styles for Admin
    // Load Javascript files for Admin
<% } %>

我也在母版页上使用了 JQuery、Bootstrap 4 和不同的自定义库,并且一切正常。

我现在必须将 Bootstrap 4 升级到 Bootstrap 5。我所做的是用 Bootstrap 5 替换 Bootstrap 4 CSS 文件,并用 Bootstrap 5 替换 Bootstrap 4 js 包文件。突然我现在看到一个空白页面。没有 javascript 错误或警告。

我已经检查并调查了 DOM,似乎根据 UserState 显示和隐藏的父 css 选择器不起作用,它仍然处于隐藏状态。自定义 MasterPage 类不适用于 MyMasterPage.master 文件。对我来说,这很奇怪,因为一旦我降级到 Bootstrap 4,一切都开始正常工作,但不适用于 Bootstrap 5。

有没有其他人遇到过同样的问题?

我使用的是 Html5 文档类型。

<!doctype HTML>
<html lang="en">

我还更新了在 Bootstrap 5 中更改的所有 css 助手,例如 ml-1 到 ms-1 等

解决方法

if 语句与 bootstrap 版本无关,如果用户级别为“Admin”,则即使您使用的是 bootstrap 4 或 5,条件也会成立。

尝试清除浏览器缓存。下面是一些解释如何为某些浏览器执行此操作的链接:

  1. Chrome
  2. Firefox
  3. Safari

可以在 here 中找到有关 ASP.NET 中的包的更多信息。