将 AddRazorRuntimeCompilation() 添加到 .NET CORE 6 中的容器将破坏 CSS 页脚

key*_*ger 11 asp.net-core-mvc asp.net-core asp.net-core-6.0

我使用 VS 2022 和 .NET Core 6 创建一个全新的 ASP.NET Core MVC 项目。VS 将生成基本模板,当我在不接触任何代码的情况下运行它时,一切都很好。

在此输入图像描述

到目前为止,一切都很好。

现在我添加 NuGet 依赖项Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation版本 6.0.0。

Program.cs文件中,我添加一行

// Add services to the container.
builder.Services.AddControllersWithViews();
builder.Services.AddRazorPages().AddRazorRuntimeCompilation(); //Add this line of code
var app = builder.Build();
Run Code Online (Sandbox Code Playgroud)

重建程序并运行它。现在我看到页脚不再位于页面底部。

这是一个错误还是我在这里做错了什么?谢谢。

在此输入图像描述

小智 8


我在尝试 nuget 包的版本时也遇到了同样的问题,并找到了5.0.13Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation版本的解决方案。

如果您将软件包从 6.0.1 降级到 5.0.13,问题就会消失,页脚将再次位于底部。


小智 6

发生的情况是,当您启用运行时编辑时,内置的 .NET Core 捆绑包和缩小功能将被删除。如果你看一下shared/_layout.cshtml,有一个_layout.cshtml.css文件。这是您缺少的运行时捆绑包/包含文件。由于这是您的核心布局,因此将此文件中的内容移动到您的wwwroot/css/site.css文件中,页脚和其他元素将像以前一样呈现。


R. *_*urs 2

您是否打算实际使用RazorPages?看起来您只想将运行时编译添加到标准 MVC 视图中。

如果您打算使用控制器和视图,只需添加:

builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();

但是,我也尝试了您的代码,并且在我的环境中,即使我将 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 从版本 6.0.1 降级到 6.0.0,这两种情况下都存在页脚。