ASP.NET Razor Pages 将自定义属性添加到呈现的 HTML 代码

ASP.NET Razor Pages adds custom attributes to rendered HTML code

我注意到 HTML 从 Razor Pages 呈现的代码包含额外的属性。这并不适用于所有 HTML 标签,但已经观察到这一点,例如对于“_Layout.cshtml”中的导航栏。

我使用标准 Visual Studio 2022 ASP.NET Razor Pages 模板复制了它。举个例子。

源代码: <nav class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">

渲染代码: <nav b-qljal0t0p2 class="navbar navbar-expand-sm navbar-toggleable-sm navbar-light bg-white border-bottom box-shadow mb-3">

b-qljal0t0p2 属性的用途是什么?可以控制和关闭吗?

这是一个 ASP CSS 隔离(又名作用域 css)。默认 Razor 页面模板包括范围 css 文件 _Layout.cshtml.css,这使得 ASP 将此类哈希属性注入 _Layout.cshtml 中的所有标签,该标签使用范围 css 规则=22=] 文件.

这些属性的目的是避免来自不同组件或页面的同名规则重叠。

当然,您可以通过将 css 规则从范围 css 文件移动到任何其他文件来关闭此行为。

您可以从这里了解更多关于 CSS 隔离的信息 link https://docs.microsoft.com/en-us/aspnet/core/razor-pages/?view=aspnetcore-6.0&tabs=visual-studio#css-isolation