c# - 重新保存Blazor WASM的.razor文件

标签 c# asp.net-core blazor blazor-client-side

有没有一种方法可以使Blazor Webassembly在更改/更新然后保存后重新编译.razor文件?我已经习惯了在传统的ASP.NET Core MVC Razor View 以及客户端框架(例如Angular)中发生这种情况。
在ASP.NET Core MVC> 3.0中,类似services.AddRazorPages().AddRazorRuntimeCompilation();可以解决问题,但是Blazor没有任何我可以找到的东西。

当我需要停止整个应用程序并重新启动以查看最新更改时,这很烦人。默认情况下,新Blazor应用程序的Main方法看起来像

        public static async Task Main(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault(args);
            builder.RootComponents.Add<App>("app");

            builder.Services.AddTransient(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });

            await builder.Build().RunAsync();
        }

我在这里想念什么? Blazor WASM还在吗?如果可以的话,我愿意接受像dotnet watch dotnet build这样的小技巧。

最佳答案

从.NET 5.0和VS 16.8.1开始,它似乎没有内置的HMR,就像您在Angular或React项目中可以找到的那样,您可以在其中更改代码并刷新浏览器。
根据我发现的信息,此功能预定用于.NET 6,但是有解决方法可以使此功能正常工作,虽然有点麻烦,但确实可以工作。
如果您使用dotnet watch --project "{PathToServer}/{YourServerProject}.csproj" run运行.NET项目,而不是启动调试或按F5键,它将监视项目文件(包括.razor文件)中的所有更改,然后重新编译它们。
截至目前,浏览器将显示一条消息,表明它已断开与服务器的连接,并且似乎未重新建立连接。您需要手动刷新浏览器,并且将显示所有更改,但您将丢失任何应用程序状态。
他们现在拥有的最好的,see this thread for more info

关于c# - 重新保存Blazor WASM的.razor文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62119532/

相关文章:

blazor - 错误 : Connection disconnected with error 'Error: Server returned an error on close: Connection closed with an error.'

blazor - 将 EditForm 绑定(bind)到数组时如何让 EditContext.Validate() 工作

C# 泛型委托(delegate)类型推断

c# - 如何覆盖 WinForms RichTextBox 的 Ctrl+Shift+0(零)?

c# - 如何在ASP.NET Core生产服务器上禁用 "Attempting to reconnect to the server"消息

asp.net-core - beta6 升级后 DNX 4.5.1 无法解析系统库

asp.net-core - IOptions<T> 的简化方法

c# - MVC4 图片上传使用 Entity Framework 5 Code First

c# - WP8/C#/SQLite : get last inserted id?

c# - Blazor HttpClient 卡在 GetAsync 中