问题标签 [blazor-client-side]

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 投票
1 回答
1090 浏览

aspnetboilerplate - aspnetboilerplate 是否支持服务器端 Blazor

支持 Blazor 服务器端和/或 Blazor 客户端的 aspnetboilerplate 的任何计划

去年我问过这个问题,因为 Server Side Blazor 将于 9 月发布。对于样板人员来说,支持 Blazor 真是太好了。我也是 Aurelia 的粉丝,但似乎他们不想做 Aurelia,因为它不常用,但比 Angular/React 等要好得多。

0 投票
1 回答
1597 浏览

.net-core - 在 Blazor 中 - 找不到类型或命名空间名称“App”(您是否缺少 using 指令或程序集引用?

我已将 .NET core 从预览版 7 升级到预览版 8,并执行了以下命令

之后,我使用 Visual Studio 创建了新的 blazorwasm 应用程序,但是在构建应用程序时出现以下问题,您能否为这个问题提出任何解决方案?

找不到类型或命名空间名称“App”(您是否缺少 using 指令或程序集引用?

Visual Stuaio 版本 在此处输入图像描述

0 投票
0 回答
476 浏览

c# - 调试 Blazor 在 Chrome 调试器和 Visual Studio 中看不到 MyApp.dll

我正在尝试调试新的 Blazor 客户端应用程序。

我的代码基于这里的 repo;

使用客户端 Blazor 进行身份验证

我也在这里参考了官方文档;

调试 ASP.NET Core Blazor

我通过 ISS Express 和调试 Visual Studio 2019 预览版运行代码(我相信这应该启动(这是正确的吗??);

它在 Chrome(版本 76.0.3809.100)中启动,然后我 ctrl& shift&d最初打开以下屏幕;

Blazor Chrome 调试屏幕 1

正如您在源代码中看到的那样,这显示了一个“文件”节点树,它允许我深入了解 .razor 文件。指出此时没有命中断点。

如果我然后刷新,导航到另一个页面,完成一个动作等,那么调试屏幕会重新加载以下内容;

blazor chrome 调试屏幕刷新

此时我没有“MyApp.dll”,也无法调试任何 Blazor 代码或设置任何断点?谁能告诉我我在这里做错了什么?

0 投票
3 回答
937 浏览

c# - 加载 Blazor 客户端应用程序时如何避免浏览器中出现 System.TypeLoadException 未处理的异常

我有一个客户端 Blazor 应用程序,当我尝试从 Visual Studio 2019 16.3.0 Preview 2.0 运行它进行调试时,我在 Chrome 浏览器中收到此错误消息(使用 Shift-Alt-D 调试时看到):

blazor.webassembly.js:1 WASM: System.TypeLoadException: 无法从 typeref 解析带有令牌 01000020 的类型(程序集“Microsoft.AspNetCore.Blazor,版本 = 0.7.0.0,文化中的预期类“Microsoft.AspNetCore.Blazor.HttpClientJsonExtensions” =中性,PublicKeyToken=adb9793829ddae60')

我已经尽早在 Program.cs 的 Main 中设置了一个断点,但这并没有受到影响。

我正在使用 Blazor 版本 3.0.0-preview8.19405.7。我一直在寻找解决这个问题的方法,但所有文章似乎都解决了我以外的其他问题。

这个问题似乎是关于 Json 和 HttpClient 的,所以我认为它可能与升级有关,因为它在过程中提到: https ://devblogs.microsoft.com/aspnet/asp-net-core-and- blazor-updates-in-net-core-3-0-preview-8/

但实际上我在升级之前并没有成功使用 Json(它正在开发中),所以我不确定它是否与此有关。

编辑:我试图从代码中删除这两行(但在项目文件中保留了对 Microsoft.AspNetCore.Blazor.HttpClient 的引用):

这解决了这个问题,但会导致我没有对我的后端进行任何调用。

那么如何使用httpClient呢?或者我有哪些选择?

编辑:

我在构造函数中使用依赖注入创建 httpClient

依赖项是从我的启动类中注入的

0 投票
1 回答
334 浏览

blazor - 获取 HTTP 流正在阻塞渲染

我正在从 WebAPI 下载流,并尝试在读取流时运行代码。

下面的代码在 Blazor 服务器端或控制台应用程序上运行良好。但是在 blazor 客户端,流将首先完全下载,然后再执行任何代码......即使只是一个 Console.WriteLine() 也会在流完成后开始写入控制台。我正在使用最新的 .Net Core 3.0 Preview 8 ...

我用 WireShark 对此进行了测试,以确认这种情况正在发生。

这是设计使然吗?

0 投票
4 回答
11772 浏览

c# - Blazor 添加 HttpClientHandler 以在请求中将 Jwt 添加到 HTTP 标头

我将Visual Studio 2019and.Net Core 3.0.0-preview-7与标准 Blazor 客户端、服务器和共享模板一起使用。

在应用程序中,我们的服务器端 WebApi 应用程序将始终要求在标头中存在 JWT 令牌以进行授权。

从以下看

在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求

我创建了以下处理程序;

我用来Blazored.LocalStorage从本地存储中获取保存的令牌并将其添加到标题的位置。

现在,在这一点上,我不确定该怎么做,就好像我将以下内容添加到Blazor.Client Startup.cs;

我收到错误消息;

“IServiceCollection”不包含“AddHttpClient”的定义,并且找不到接受“IServiceCollection”类型的第一个参数的可访问扩展方法“AddHttpClient”(您是否缺少 using 指令或程序集引用?)

谁能指导我在这里做错了什么?

0 投票
1 回答
4358 浏览

c# - 使用 Blazor 使用 Refresh Token 实现短暂的 Jwt

我们目前正在开发一个Blazor应用程序,该应用程序使用带有刷新令牌的短期(10 分钟)Jwt 进行保护。

目前我们已经实现了 Jwt,并且可以通过 Blazor 服务器端 Web api 登录、生成 Jwt 并生成刷新令牌。

从客户端我使用了以下链接;

使用客户端 Blazor 进行身份验证

并扩展ApiAuthenticationStateProvider.cs如下;

因此,如果 Jwt 第一次尝试使用刷新令牌进行更新时失败。

上面的代码正在运行,但是我发现的第一个问题是,如果我随后导航到/fetchData测试端点(受[Authorize]属性保护)。该页面最初运行良好并在标头中发送 Jwt。但是,如果我然后f5刷新页面,我会在/fecthData端点上得到 401 未授权,即在代码上;

现在,如果要解决这个问题,我可以手动将 Jwt 表单 localStorage 添加到标题中(在我的情况下,我使用扩展方法);

但是,我在这里遇到的第二个问题是,如果 Jwt 在此调用期间过期,我将需要调用以使用刷新令牌来获取新的 Jwt。

有没有办法我可以用中间件来做到这一点,以避免在每次调用时检查 401,然后以这种方式更新令牌?

0 投票
1 回答
1503 浏览

c# - 更新到 netcore3.0-preview8 后出现 Blazor Mono 客户端错误

我已将我的 blazor 客户端项目项目从 preview7 更新到 preview 8,使用 Visual Studio 2019 运行。

我已按照此处详述的说明进行操作;

.NET Core 3.0 Preview 8 中的 ASP.NET Core 和 Blazor 更新

但是,当我构建解决方案时,会出现以下错误;

IL Linker 5> 5> Unhandled Exception: Mono.Linker.Steps.XmlResolutionException: Failed to process XML description: ---> Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'Microsoft.AspNetCore.Mvc.Core,版本=3.0.0.0,文化=中性,PublicKeyToken=adb9793829ddae60' ---> Mono.Cecil.AssemblyResolutionException:无法解析程序集:'Microsoft.AspNetCore.Mvc.Core,版本=3.0.0.0,文化=中性,PublicKeyToken= adb9793829ddae60' 5> 在 Mono.Linker.DirectoryAssemblyResolver.Resolve(AssemblyNameReference 名称,ReaderParameters 参数) 5> 在 Mono.Linker.AssemblyResolver.Resolve(AssemblyNameReference 名称,ReaderParameters 参数) 5> 在 Mono.Linker.LinkContext.Resolve(IMetadataScope 范围) 5>--- 内部异常堆栈跟踪结束 --- 5> 在 Mono.Linker.LinkContext.Resolve(IMetadataScope 范围) 5> 在 Mono.Linker.LinkContext.ResolveReferences(AssemblyDefinition 程序集) 5> 在 Mono.Linker.Steps.ResolveFromXmlStep .ProcessAssemblies(LinkContext context, XPathNodeIterator iterator) 5> 在 Mono.Linker.Steps.ResolveFromXmlStep.Process() 5> --- 内部异常堆栈跟踪结束 --- 5> 在 Mono.Linker.Steps.ResolveFromXmlStep.Process( ) 5> 在 Mono.Linker.Steps.BaseStep.Process(LinkContext context) 5> 在 Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep 步骤) 5>ProcessAssemblies(LinkContext context, XPathNodeIterator iterator) 5> 在 Mono.Linker.Steps.ResolveFromXmlStep.Process() 5> --- 内部异常堆栈跟踪结束 --- 5> 在 Mono.Linker.Steps.ResolveFromXmlStep.Process() 5> 在 Mono.Linker.Steps.BaseStep.Process(LinkContext context) 5> 在 Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep 步骤) 5>ProcessAssemblies(LinkContext context, XPathNodeIterator iterator) 5> 在 Mono.Linker.Steps.ResolveFromXmlStep.Process() 5> --- 内部异常堆栈跟踪结束 --- 5> 在 Mono.Linker.Steps.ResolveFromXmlStep.Process() 5> 在 Mono.Linker.Steps.BaseStep.Process(LinkContext context) 5> 在 Mono.Linker.Pipeline.ProcessStep(LinkContext context, IStep 步骤) 5>
在 Mono.Linker.Pipeline.Process(LinkContext context) 5> 在 Mono.Linker.Driver.Run(ILogger customLogger) 5> 在 Mono.Linker.Driver.Execute(String[] args, ILogger customLogger) 5>
在 Mono.Linker.Driver.Main(String[] args) 5>C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor.build\3.0.0-preview8.19405.7\targets\Blazor.MonoRuntime.targets (441,5):错误 MSB3073:命令“dotnet”C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor.mono\3.0.0-preview8.19380.1\build\netstandard1.0../。 ./tools/illink/illink.dll" -l none --disable-opt unreachablebodies --verbose --strip-security true --exclude-feature com --exclude-feature sre -v false -c link -u link - b true -d "C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor.mono\3.0.0-preview8.19380.1\build\netstandard1.0../../tools/mono/bcl/" -d "C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor.mono\3.0.0-preview8.19380.1\build\netstandard1.0../../tools/mono/bcl/Facades/" -o "C:\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing.Blazor.Client\obj\Debug\netcoreapp3.0\blazor\linker/" -x "C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor。 build\3.0.0-preview8.19405.7\targets\BuiltInBclLinkerDescriptor.xml" -x "C:\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing.Blazor.Client\obj\Debug\netcoreapp3.0\blazor\linker.描述符.xml" -a "C:\Users\matt.nuget\packages\blazored.localstorage\2.0.12\lib\netstandard2.0\Blazored.LocalStorage.dll" -a "C:\Users\matt.nuget\ packages\microsoft.aspnetcore.blazor\3.0.0-preview8.19405.7\lib\netstandard2.0\Microsoft.AspNetCore.Blazor.dll”-a “C:\Users\matt.nuget\packages\microsoft.aspnetcore.blazor. httpclient\3.0.0-preview8.19405.7\lib\netstandard2.0\Microsoft.AspNetCore.Blazor.HttpClient.dll" -a "C:\Users\matt.nuget\packages\mono.webassembly.interop\3.0.0-preview8.19405.4\lib\netstandard2.0\Mono.WebAssembly.Interop.dll" -a "C:\Users\matt.nuget\packages \newtonsoft.json\12.0.3-beta1\lib\netstandard2.0\Newtonsoft.Json.dll" -a "C:\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing.Blazor.Shared\bin\Debug\netstandard2 .1\OakfieldLeasing.Blazor.Shared.dll" -a "C:\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing.Blazor.Client\obj\Debug\netcoreapp3.0\OakfieldLeasing.Blazor.Client.dll""退出代码 -532462766。\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing.Blazor.Shared\bin\Debug\netstandard2.1\OakfieldLeasing.Blazor.Shared.dll" -a "C:\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing .Blazor.Client\obj\Debug\netcoreapp3.0\OakfieldLeasing.Blazor.Client.dll"" 退出,代码为 -532462766。\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing.Blazor.Shared\bin\Debug\netstandard2.1\OakfieldLeasing.Blazor.Shared.dll" -a "C:\Users\matt\Source\Repos\OakfieldLeasing\OakfieldLeasing .Blazor.Client\obj\Debug\netcoreapp3.0\OakfieldLeasing.Blazor.Client.dll"" 退出,代码为 -532462766。

Blazor 客户端项目引用的唯一其他项目是引用.Net Standard 2.1.

我在 Blazor 客户端项目的依赖项 -> 分析器中列出了以下内容。

Blazor 客户端项目依赖项分析器

最后我.csproj的是

我也尝试过Newtonsoft.JsonMicrosoft.AspNetCore.NewtonsoftJsonNuget 包替换,但这似乎没有什么区别。

请问有人知道是什么原因造成的吗?

0 投票
2 回答
165 浏览

blazor - 使用额外的数据获取绑定孩子

我试图找出一些简单数据的主/详细视图。我有一份食谱清单,每个食谱都有一份配料清单。

我有一个列出所有食谱的食谱页面,这很好用。我有一个 RecipeDetail 剃须刀组件,一旦从“食谱”页面中选择了一个食谱,它就应该获取成分列表。

我尝试过各种各样的事情。我尝试通过将完全填充的 Recipe 及其成分传递给 RecipeDetail 组件来进行数据绑定,但由于数据结构的原因,GetJsonAsync 方法检测到循环引用并引发异常。我尝试通过绑定到“配方”页面上的变量的参数,将从“配方”页面选择的配方的 ID 向下传递到“配方详细信息”页面,但从未触发数据获取。

以下在技术上有效,但是当我取消注释提取时,它不再有效。应用程序冻结。

我很乐意修复 JSON 错误并绑定到传递的对象,但我也找不到解决方案。我尝试了属性 [JsonIgnore] 但这没有帮助。

即使 Json fetch 是固定的,我认为我仍然有一个用例可以在参数更改后重新获取数据,所以我想了解在这两种情况下我做错了什么。

0 投票
1 回答
543 浏览

blazor - Blazor 客户端调试器未观察值

我无法调试 Blazor 客户端应用程序。

我浏览了 MS 文档,我可以连接到 Chrome 调试器。当断点被击中时,应用程序按预期停止,但我无法观察到任何值。我得到的只是一个带有this未定义变量的局部范围。这是我正在描述的屏幕截图。我正在尝试调试 Counter 组件并希望查看该currentCount

我从文档中唯一不明白的是 将 --configuration Debug 选项传递给 dotnet run 命令 我应该这样做以及在使用 Visual Studio 时如何做?

在此处输入图像描述