问题标签 [blazor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3822 浏览

c# - 异步更新属性

当我的 ViewModel 的一个属性被更新时,其他属性被异步更新。

待办事项.cshtml:

TodoItem.cs:

在同步(没有 Task.Run)中,这项工作正常,但在异步中,UI 不会更新。

我需要解释要更新的 UI StateHasChanged()https ://github.com/aspnet/Blazor/issues/1413

但是我不能在 TodoItem 中调用这个方法(而且我不希望 TodoItem 知道 Blazor 组件)。

您有更新 UI 的解决方案吗?

0 投票
1 回答
4007 浏览

blazor - 如何在 Blazor 中异步加载数据

我一直在玩 Blazor 并尝试构建一个简单的应用程序。我尝试做的第一件事是异步加载数据(在我的例子中来自 LocalStorage)。

我的渲染代码如下所示:

我在呈现页面时收到 NullReferenceException,而且浏览器进入无响应状态,此时我所能做的就是关闭浏览器选项卡并重新启动 Blazor 应用程序。

尽管事实证明这种行为是设计使然,但我没有在任何文档中找到它的解释,而且我认为在这里授予共享是出乎意料的。希望它会对其他人有所帮助(请参阅下面我自己的答案)。

0 投票
3 回答
9985 浏览

internet-explorer - Internet Explorer 中的 Blazor

我正在尝试在 Internet Explorer 中运行 blazor 应用程序。在 blazor 页面上,有一条通知指出,对于不支持 webassembly 的浏览器,可以回退到 asm.js。当我在 IE 中加载页面(链接 blazor.pollyfil.js 脚本)时,我只收到错误“浏览器不支持 WebAssembly”。

我能够在服务器模式下运行应用程序(使用 SignalR 连接到渲染服务器),但它是适用于所有浏览器的解决方案,并且失去了 Web 程序集的好处。

有没有办法正确回退到 asm.js 模式,只在 Internet Explorer 中?

0 投票
1 回答
2371 浏览

c# - Blazor/Electron:处理关闭事件

我已经开始使用 Blazor/Electron 进行实验应用。

我已经分叉了这个项目: https ://github.com/SteveSandersonMS/BlazorElectronExperiment.Sample

当应用程序关闭时,它需要保存应用程序的状态。为此,我认为它需要在最终关闭之前处理关闭事件并保存应用程序的状态。

如何处理关闭事件?你有其他解决方案吗?

0 投票
4 回答
621 浏览

c# - 检测客户端或服务器模式

我正在构建一个可以在客户端模式和服务器模式之间切换的 Blazor 应用程序。应用程序的某些部分只能在其中一种情况下工作,并且需要在这种情况下执行回退代码。

有没有一种好方法可以检查例如 Mono 是否正在运行?

有什么建议么?

0 投票
1 回答
3369 浏览

c# - 通过覆盖 BlazorComponent.BuildRenderTree(RenderTreeBuilder builder) 创建组件

我正在学习 Blazor。 https://learn-blazor.com/

BuildRenderTree(RenderTreeBuilder builder)通过覆盖类的方法,我在 C# 中创建组件时遇到了一些困难BlazorComponent

这是我的课:

我在我的页面中这样使用它:

我已经在最后一行和没有最后一行的情况下对其进行了测试,base.BuildRenderTree(builder);但无论哪种方式它都不会呈现。我让组件变得非常简单(只是一个段落标签、一个强标签和一个内容),所以我不知道为什么它不会呈现。代码构建得很好。

谁能看到我做错了什么?

0 投票
1 回答
911 浏览

c# - .NET CORE FindByEmailAsync 操作已取消 REST 调用

我正在尝试使用 blazor 和 .net 核心构建应用程序。我有用于用户凭据验证的帐户控制器。如果我从 VS (IIS) 在调试中运行应用程序并从我的网页发送登录凭据,那么 userManger 将返回正确的用户。但是,如果我从 cmd (dotnet watch run) 运行我的应用程序,那么 userManager.FindByEmailAsync 将以异常结束:

System.OperationCanceledException:操作已取消。

这是来自 cmd 的调用堆栈:

Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware[1] 执行请求时发生未处理的异常。System.OperationCanceledException:操作已取消。在 System.Threading.CancellationToken.ThrowOperationCanceledException() 在 Microsoft.AspNetCore.Identity.EntityFrameworkCore.UserStore9.FindByEmailAsync(String normalizedEmail, CancellationToken cancellationToken) at Microsoft.AspNetCore.Identity.UserManager1.C:\Users\lukha\source\repos\ProjectManagement\ProjectManagement.BlazorClient.Server\Controllers\AccountController.cs:line 中 ProjectManagement.BlazorClient.Server.Controllers.AccountController.Login(LoginRequest 请求)的 FindByEmailAsync(字符串电子邮件) 43 在 Microsoft.AspNetCore.Mvc.Internal.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(IActionResultTypeMapper 映射器,ObjectMethodExecutor 执行器,对象控制器,Object[] 参数) 在 System.Threading.Tasks.ValueTask`1.get_Result() 在 Microsoft.AspNetCore.Mvc .Internal.ControllerActionInvoker.InvokeActionMethodAsync() 在 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync() 在 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext context) 在 Microsoft.AspNetCore.Mvc.Internal。ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) 在 Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.InvokeInnerFilterAsync() 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeNextResourceFilter() 在 Microsoft.AspNetCore.Mvc .Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context) 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) 在 Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeFilterPipelineAsync() 在Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.InvokeAsync() 在 Microsoft.AspNetCore.Builder.RouterMiddleware.Invoke(HttpContext httpContext) 在 Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware。调用(HttpContext 上下文)

这是我的控制器代码:

编辑:如果我从 cmd 运行应用程序并从 Postman 调用这个控制器,那么一切正常。这是我的页面代码:

知道我的代码有什么问题吗?

0 投票
1 回答
715 浏览

.net - .NET Blazor 在构建应用程序时出现错误 MSB3073,但以及如何修复它,删除 Blazor.MonoRuntime.targets 中的行不会成功

我在大学的最后一年,所以是编程方面的菜鸟,尤其是 Blazor。此错误在启动项目后显示,安装 nuget 包 EntityFrameworkCore、EntityFrameworkCore.SqlServer 和 EntityFrameworkCore.Tools 然后我用这一行搭建我的本地数据库(这就是我给出 con 字符串的原因)

. 直到此刻我可以构建应用程序,但是在搭建脚手架后我得到了这样的错误

双击错误文件后 Blazor.Monotime.targets 在线打开

并删除这一行让我构建应用程序,但它只是加载而不工作。正如我看到的错误在这一行,但我根本不知道 bash 和足够的其他知识来完成这项工作,谷歌没有帮助。有没有人可以帮助我开始这个项目并解释我出了什么问题。

编辑:在我对项目 .Server 重复所有步骤后,它工作正常,但如果它是在共享中完成的,它就不起作用。

0 投票
1 回答
449 浏览

c# - 创建新的 blazor 应用程序在运行时会引发错误

我正在关注Blazor 入门。我已经创建了应用程序并尝试按原样运行它,我没有做任何更改。

在此处输入图像描述

我的事件日志中有三件事。

  • 为缓存压缩内容指定的目录 C:\inetpub\temp\IIS Temporary Compressed Files\Clr4IntegratedAppPool 无效。静态压缩被禁用。
  • 物理根目录为“C:\Users\LindaL\source\repos\Daimto.RazorTest.Tools\WebApplication1\”的应用程序“MACHINE/WEBROOT/APPHOST/WEBAPPLICATION1”无法使用命令行“c:\program files (x86)\”启动进程microsoft visual studio\2017\professional\common7\ide\extensions\microsoft\web 工具\projectsystem\VSIISExeLauncher.exe -argFile "C:\Users\LindaL\AppData\Local\Temp\tmpF272.tmp"', ErrorCode = '0x80004005 ':0。
  • 物理根目录为“C:\Users\LindaL\source\repos\Daimto.RazorTest.Tools\WebApplication1\”的应用程序“MACHINE/WEBROOT/APPHOST/WEBAPPLICATION1”无法使用命令行“c:\program files (x86)\”启动进程microsoft visual studio\2017\professional\common7\ide\extensions\microsoft\web 工具\projectsystem\VSIISExeLauncher.exe -argFile "C:\Users\LindaL\AppData\Local\Temp\tmpF272.tmp"', ErrorCode = '0x80004005 ':0。

请注意,我刚刚更新到 Visual Studio Professional 2017 15.9.3。在此之前我使用过 blazor 工作正常。

更新:这仅出现在“Blazor”项目类型中。

更新 2 :按 Cntrl-F5 而不是 F5 – 没有变化。

Update3项目文件每个请求的评论在下面的答案中

0 投票
1 回答
1358 浏览

blazor - 代码更改和浏览器刷新后示例应用程序未更新?构建挂起 Blazor

很高兴了解 Blazor。这个框架有很多潜力!

VS 2017 构建 15.8.9 和 Blazor v 15.5.9 的 VS 扩展 好的,所以在使用 asp.net 核心(托管)模板开始一个新项目后,我正在浏览演示应用程序(待办事项)。

我遇到的第一个问题是代码更改没有反映在浏览器(edge、Firefox 和 Chrome)中。但是,如果我停止应用程序(通过 Visual Studio)并尝试重新启动,构建会开始,但似乎一直在继续。
如果我通过系统托盘中的 iis express 停止站点,停止构建,然后重新启动,它构建良好并运行,代码更改的预期结果反映在浏览器中。

我可以检查什么?

下拉到命令行并dotnet run从 blazor_do.server 文件夹使用时执行相同的操作