问题标签 [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.
aspnetboilerplate - aspnetboilerplate 是否支持服务器端 Blazor
支持 Blazor 服务器端和/或 Blazor 客户端的 aspnetboilerplate 的任何计划
去年我问过这个问题,因为 Server Side Blazor 将于 9 月发布。对于样板人员来说,支持 Blazor 真是太好了。我也是 Aurelia 的粉丝,但似乎他们不想做 Aurelia,因为它不常用,但比 Angular/React 等要好得多。
c# - 调试 Blazor 在 Chrome 调试器和 Visual Studio 中看不到 MyApp.dll
我正在尝试调试新的 Blazor 客户端应用程序。
我的代码基于这里的 repo;
我也在这里参考了官方文档;
我通过 ISS Express 和调试 Visual Studio 2019 预览版运行代码(我相信这应该启动(这是正确的吗??);
它在 Chrome(版本 76.0.3809.100)中启动,然后我 ctrl
& shift
&d
最初打开以下屏幕;
正如您在源代码中看到的那样,这显示了一个“文件”节点树,它允许我深入了解 .razor 文件。指出此时没有命中断点。
如果我然后刷新,导航到另一个页面,完成一个动作等,那么调试屏幕会重新加载以下内容;
此时我没有“MyApp.dll”,也无法调试任何 Blazor 代码或设置任何断点?谁能告诉我我在这里做错了什么?
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
依赖项是从我的启动类中注入的
blazor - 获取 HTTP 流正在阻塞渲染
我正在从 WebAPI 下载流,并尝试在读取流时运行代码。
下面的代码在 Blazor 服务器端或控制台应用程序上运行良好。但是在 blazor 客户端,流将首先完全下载,然后再执行任何代码......即使只是一个 Console.WriteLine() 也会在流完成后开始写入控制台。我正在使用最新的 .Net Core 3.0 Preview 8 ...
我用 WireShark 对此进行了测试,以确认这种情况正在发生。
这是设计使然吗?
c# - Blazor 添加 HttpClientHandler 以在请求中将 Jwt 添加到 HTTP 标头
我将Visual Studio 2019
and.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 指令或程序集引用?)
谁能指导我在这里做错了什么?
c# - 使用 Blazor 使用 Refresh Token 实现短暂的 Jwt
我们目前正在开发一个Blazor
应用程序,该应用程序使用带有刷新令牌的短期(10 分钟)Jwt 进行保护。
目前我们已经实现了 Jwt,并且可以通过 Blazor 服务器端 Web api 登录、生成 Jwt 并生成刷新令牌。
从客户端我使用了以下链接;
并扩展ApiAuthenticationStateProvider.cs
如下;
因此,如果 Jwt 第一次尝试使用刷新令牌进行更新时失败。
上面的代码正在运行,但是我发现的第一个问题是,如果我随后导航到/fetchData
测试端点(受[Authorize]
属性保护)。该页面最初运行良好并在标头中发送 Jwt。但是,如果我然后f5
刷新页面,我会在/fecthData
端点上得到 401 未授权,即在代码上;
现在,如果要解决这个问题,我可以手动将 Jwt 表单 localStorage 添加到标题中(在我的情况下,我使用扩展方法);
但是,我在这里遇到的第二个问题是,如果 Jwt 在此调用期间过期,我将需要调用以使用刷新令牌来获取新的 Jwt。
有没有办法我可以用中间件来做到这一点,以避免在每次调用时检查 401,然后以这种方式更新令牌?
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 客户端项目的依赖项 -> 分析器中列出了以下内容。
最后我.csproj
的是
我也尝试过Newtonsoft.Json
用Microsoft.AspNetCore.NewtonsoftJson
Nuget 包替换,但这似乎没有什么区别。
请问有人知道是什么原因造成的吗?
blazor - 使用额外的数据获取绑定孩子
我试图找出一些简单数据的主/详细视图。我有一份食谱清单,每个食谱都有一份配料清单。
我有一个列出所有食谱的食谱页面,这很好用。我有一个 RecipeDetail 剃须刀组件,一旦从“食谱”页面中选择了一个食谱,它就应该获取成分列表。
我尝试过各种各样的事情。我尝试通过将完全填充的 Recipe 及其成分传递给 RecipeDetail 组件来进行数据绑定,但由于数据结构的原因,GetJsonAsync 方法检测到循环引用并引发异常。我尝试通过绑定到“配方”页面上的变量的参数,将从“配方”页面选择的配方的 ID 向下传递到“配方详细信息”页面,但从未触发数据获取。
以下在技术上有效,但是当我取消注释提取时,它不再有效。应用程序冻结。
我很乐意修复 JSON 错误并绑定到传递的对象,但我也找不到解决方案。我尝试了属性 [JsonIgnore] 但这没有帮助。
即使 Json fetch 是固定的,我认为我仍然有一个用例可以在参数更改后重新获取数据,所以我想了解在这两种情况下我做错了什么。