kev*_*ree 38 asp.net-core-mvc .net-core asp.net-core asp.net-core-2.2
我正在最新版本2.2上构建.NET Core MVC。更改CSHTML文件并刷新页面时出现问题,我的更改未反映在浏览器中。我必须重新启动项目才能看到我的更改。现在已经发生了一段时间,所以我不确定是什么变化导致了此问题。
我尝试使用Chrome浏览器的“空缓存和硬重载”以及其他浏览器都无济于事。在同时使用Visual Studio for Mac和VS Code的Windows和Mac上发生这种情况
在默认的.Net Core项目中,它工作正常,因此在我的项目中必须有所更改。我想知道从哪里开始才能调试此问题?我尝试注释掉几乎所有内容,Startup.cs并且Program.cs没有解决方法。
小智 66
我刚刚使用最新的 ASP.NET MVC Core 3.1 模板创建了一个新项目,并更改了以下内容以启用运行时重新编译以进行调试:
参考 NuGet 包 - Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation。
Startup.cs - ConfigureServices(IServiceCollection services) WAS:
// stuff...
services.AddControllersWithViews();
// more stuff...
Run Code Online (Sandbox Code Playgroud)
现在:
// stuff...
var mvcBuilder = services.AddControllersWithViews();
#if DEBUG
mvcBuilder.AddRazorRuntimeCompilation();
#endif
// more stuff...
Run Code Online (Sandbox Code Playgroud)
Ale*_*tov 46
在ASP.NET Core 3.0中(编写时仍处于预览状态!)RazorViewEngineOptions.AllowRecompilingViewsOnFileChange不可用(或无法访问吗?-没有时间检查)。
感到惊讶的是,在应用程序运行时刷新视图不起作用,我发现了以下解决方案(请注意,发行版中的内容可能会发生变化!):
在中添加以下内容Startup.cs:
services.AddControllersWithViews()。AddRazorRuntimeCompilation() ;
这是对好奇的完整解释 ...
高温超导
小智 23
似乎ASP.NET Core 2.2中进行了更改(并且我找不到有关此更改的任何公告)。如果未在“开发”环境中明确运行,则将编译“剃刀视图”,并且不会看到对.cshtml所做的任何更改
但是,您可以使用Startup类中的某些配置关闭此功能,如下所示。
services.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = true);
Run Code Online (Sandbox Code Playgroud)
Gur*_*ron 13
除了Alexander Christov 的回答之外,从 ASP.NET Core 3.1 开始,您可以在不更改Startup文件的情况下为开发环境启用视图编译:
ASPNETCORE_ENVIRONMENT 到“发展”。ASPNETCORE_HOSTINGSTARTUPASSEMBLIES 到“Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation”。Ali*_*jad 12
你应该只添加这个:
services.AddControllersWithViews();
Run Code Online (Sandbox Code Playgroud)
到ConfigureService方法。
请注意以下代码在 ASP.NET Core 3.1 中不可用:
services.AddControllersWithViews().AddRazorRuntimeCompilation();
Run Code Online (Sandbox Code Playgroud)
小智 7
对于使用 Net core 3.0 或更高版本的用户
转到工具?Nuget 包管理器?管理解决方案的 nuget 包
移动到浏览选项卡从互联网浏览
搜索 RuntimeCompilation 单击 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
将其安装在您预期的项目中当前的稳定版本
打开 Startup.cs 文件
转到 void 方法 ConfigureServices
添加行: services.AddControllersWithViews().AddRazorRuntimeCompilation();
你完成了
重新运行看看。现在您可以刷新您的视图或页面。
小智 7
首先使用 nuget 管理器安装 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation,然后将以下代码添加到您的 startup.cs
services.AddRazorPages().AddRazorRuntimeCompilation();
当视图在单独的项目中时,下面帮助了我。
if(HostingEnvironment.IsDevelopment()){ // only in development (optional)
services.AddMvc().AddRazorOptions(o => {
o.FileProviders.Add(new PhysicalFileProvider(PATH_TO_PROJECT));
});
}
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您使用的是.Net Core 3.0,请使用RazorRuntimeCompilationMvcBuilderExtensions扩展方法AddRazorRuntimeCompilation()
遵循的步骤:
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation,
可从此处获得。在的ConfigureServices方法中添加以下代码Startup.cs
services.AddControllersWithViews().AddRazorRuntimeCompilation();
我在开发 .NET 6 MVC Web 应用程序时遇到了同样的问题。
我从 NuGet Package Manger安装了Microsoft.AspNetCore.Mvc.Razor.Runtime.Compilation.AddRazorRuntimeCompilation();然后添加
builder.services.AddControllersWithViews();
Run Code Online (Sandbox Code Playgroud)
所以它看起来像这样
builder.services.AddControllersWithViews().AddRazorRuntimeCompilation();
成功了!
希望这有帮助。
| 归档时间: |
|
| 查看次数: |
7680 次 |
| 最近记录: |