我正在尝试Blazor
,但我不明白为什么刷新浏览器页面后更改component
时不更新? client
是否应该像angular
那样进行更新?
仅在重新启动blazor
服务器时刷新。
Index.cshtml
@page "/"
<h1>Hello, world!</h1>
如果我将<h1>
内的文本更改为Hello people
,则我保存项目并刷新页面(正如我在Blazor
教程中建议的那样)我看到Hello people
吗?
答案 0 :(得分:16)
在Asp.net Core 3.0之后,使用Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation程序包启用运行时编译。 要启用运行时编译,应用程序必须:
安装Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
NuGet软件包。
更新项目的Startup 。ConfigureServices方法包括对AddRazorRuntimeCompilation的调用:
services
.AddControllersWithViews()
.AddRazorRuntimeCompilation();
或
services.AddMvc().AddRazorRuntimeCompilation();
答案 1 :(得分:2)
您应该重建项目...非常简单...保存项目还不够。在看到更改之前,应先在用户浏览器中下载新建的C#.dll文件。实际上,这与Blazor无关。
自动重建功能即将在Blazor中引入(至少暂时仅针对Blazor项目)。就像Angular一样。
答案 2 :(得分:2)
我猜您在连接调试器的情况下运行应用程序?这样可以防止重新编译。您需要:
Press Ctrl-F5 to run the app without the debugger. Running with the debugger (F5) isn't supported at this time.
答案 3 :(得分:2)
您应该在剃须刀页面中添加或启用运行时编译,
安装软件包Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation-版本3.1.6
安装后,将启动文件设置为,
services.AddMvc().AddRazorRuntimeCompilation();
答案 4 :(得分:0)
如果进入“工具”>“选项”>“键盘”,然后在“显示包含的命令”搜索框中搜索“ BrowserLink”。查找默认为“ OtherContextMenus.BrowserLink.RefreshLinkedBrowsers”的选项,此选项设置为CTRL + Alt + Enter。单击“删除”,然后选择“按快捷键”输入,然后按Ctrl + S。下一步(在输入的左侧)更改将“全局”中的新快捷方式用作“文本编辑器”。单击“确定”,直到关闭窗口。现在,Visual Studio与“保存文件”和“刷新链接的浏览器”共享CTRL + S。
(仅当您在编辑窗口中的文本编辑器.cshtml,.css,.js等文件处于活动状态时,此选项才起作用)警告:如果未将其设置为除global之外的其他值,则它将覆盖“保存”的快捷方式,您将无法保存文件。
答案 5 :(得分:0)
执行以下操作:
从 NuGet 安装 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation。
将 Startup 类中的 ConfigureServices 方法更新为如下所示:
services.AddControllersWithViews().AddRazorRuntimeCompilation();