问题标签 [blazor-webassembly]

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 回答
401 浏览

c# - 移动呈现不正确 Azure App Service Blazor Webassembly(ASP.NET 托管)

我向 Azure 应用服务发布了一个 Blazor Webassembly ASP.NET Core 托管网站,它在笔记本电脑浏览器上按预期工作。但是,如果我在移动设备(iOS Safari)上导航到它,它似乎只显示我的页面而不是我的 MainLayout.Razor 文件 - 也就是说,不显示。为什么会这样?谢谢

index.html 文件

App.razor

MainLayout.razor

登录显示.razor

笔记本电脑 chrome 浏览器上的屏幕截图

手机 safari 浏览器截图

首先是笔记本电脑 chrome 浏览器上的屏幕截图。二是手机Safari浏览器截图

编辑

现在在玩了一下 app.css 文件之后,使用以下设置:

在此处输入图像描述

iPhone SE 模拟器在开发模式下运行时完美运行。然而,发布它并没有在我的手机上导航到它。它看起来和以前完全一样。

0 投票
2 回答
387 浏览

c# - 引用 Razor 类库时重复的基本路径

我的 Blazor 项目使用 Razor 类库。将 Blazor 从 3.2.0 预览版更新到 3.2.0 后,我得到:

内容根路径的重复基本路径“/”

该错误还显示了路径,包括

...\bin\Debug\netstandard2.1\wwwroot\

我从以下位置升级了 Blazor 项目和 razor 库:

当我将 Razor 库发布到 Azure DevOps 并使用 Nuget 将其包含在我的 Blazor 项目中时,它仍在工作。只有当我添加和引用项目时它才会失败。它曾经在这两种情况下都有效。

0 投票
1 回答
63 浏览

blazor - 函数被执行,我不知道为什么

我是 blazor 的新手,我有一个我不明白的问题。

我编写了一个简单的测试应用程序,我可以在其中创建联系人、文章和发票。这行得通。在发票中,我可以通过打开模式创建发票行项目并选择一些获得新发票行项目的文章。

现在我有两个问题/问题:

  1. 当我删除最后一个发票行项目时,它可以工作,但是当我删除最后一个项目之外的另一个项目时,该功能SaveInvoice被执行。
  2. 如果我将模态的代码放在<Editform>-tags 中,该函数SaveInvoice也会被执行。如果我将模态框放在<Editform>标签之外,它会按预期工作,但我想将它放在表单中。

为什么在没有显式调用的情况下执行此代码?我想有某种隐式调用,但我不明白它来自哪里。

你能帮我或给我一个提示吗?或者您需要更多信息?

调用发票表单的代码:

发票表格代码:

显示发票行项目和删除可能性的代码:

模态代码:

0 投票
0 回答
410 浏览

c# - 使用 SignalR 的 Blazor wasm 网络摄像头

如何使用 blazor 访问网络摄像头并将其传输到 API?我搜索了答案,但只有我找到了如何通过 SingalR 连接到集线器。

0 投票
0 回答
536 浏览

blazor - 在 Blazor 客户端 WebAssembly 中调用 C++ dll

我正在尝试在我的客户端 webassembly blazor 应用程序中调用 C++ DLL。但是,我无法在这方面取得成功。

我使用以下语法来调用 dll,但是收到错误。

谁能帮助我是 Blazor webassembly 支持在客户端 C# 代码中调用 C++ 本机 dll 或 NO 。

我正在使用以下语法从应用程序调用 dll。

提前致谢 !!

0 投票
0 回答
848 浏览

c# - Blazor WASM 与数据表的集成(使用 ajax)

我读过这篇文章

我正在从 MVC .Net Core 迁移到 Blazor。我将Datatable与 MVC 一起使用,但我想重用它。但我正在使用数据表中的 ajax 函数。这里的JS代码:

API(C# .Net 核心)

在我的 Blazor 应用程序中,我移动了脚本并在这篇文章中实现了代码,它可以工作,但它首先调用我的所有数据,然后只在客户端进行过滤、排序和搜索。我想实现一种从 Blazor 调用它的方法

实际上,在我的 Blazor 应用程序上,只需以这种方式调用 Datatable:

我在 Blazor 应用程序中的脚本

有没有办法重用它?

0 投票
2 回答
1024 浏览

c# - Blazor WASM - Global Catch 401 并导航到所有 HttpClient 调用的登录页面

blazor template httpclient中添加Program.cs class

后来使用如下:

有什么方法可以覆盖该基本 httpclient 并将其注入我的所有页面,那就是:

  • 捕获任何服务器请求中返回的 401(发布/获取等)
  • 尝试刷新令牌(为此调用 API)
  • 刷新失败返回登录

我看到我可以定义一个自定义服务来包装所有这些 HTTP 客户端调用并执行我提到的操作,但是有没有更好的方法呢?

0 投票
2 回答
781 浏览

c# - @inject HttpClient httpClient 与 Blazor 中的 builder.Services.AddHttpClient

GetFromJsonAsync当我们使用命名的 HttpClients 时,我们没有可用的方法有什么原因吗?当我切换到命名 HttpClients 时,我必须安装 NewtonSoftJson 来反序列化响应。

注入 Razor 组件

注入服务/类

谢谢法赫德穆拉吉

0 投票
3 回答
3496 浏览

c# - Blazor WASM PWA 无法更改图标,无法更改名称

我正在努力解决一个我已经对如何做到这一点进行了很好的研究的案例。它适用于所有人,但不适用于我!

环境:

  • 微软视窗 10 专业版
  • Visual Studio 社区版 2019

因此,我创建了一个项目并从一开始就选择了渐进式 Web 应用程序 (PWA) 来自动生成我需要的一切。还托管了应用程序 ASP.NET Core。

启动项目是独立模式下的 Rihal.Server(不是 IIS 或 Docker)。

当我启动应用程序时,我会在 Chrome 中收到默认提示以安装应用程序。当我单击“+”图标时,我会看到默认的 Blazor 图标和应用程序的名称“Rihal”。到现在为止还挺好。当我更改图标和名称时,我仍然保持默认设置! 在此处输入图像描述

  1. 我已经尝试一一清理和重建所有项目,没有错误。
  2. 我试过重新启动 Visual Studio。
  3. 我尝试更改清单中的其他内容,例如背景颜色以查看任何更改,没有任何更改。
  4. 我已经检查了构建操作(内容)。默认复制到输出目录是(不复制),更改为(始终复制)无效。

就像清单被完全忽略一样。

我已经开发了这个应用程序的其他部分,然后来改变图标和名称:

  1. 替换了默认图标(与 192 相同的图标,分辨率更小) 在此处输入图像描述

  2. 为 192 大小和名称/短名称更新了我的 manifest.json:(我也尝试添加多个大小)。

其他相关文件:

Rihal.Client service-worker.js

Rihal.Client service-worker.published.js

Rihal.Client csproj 文件

0 投票
2 回答
2028 浏览

blazor - 安全存储 Blazor Webassembly 应用程序的应用程序机密

我正在寻找在 blazor webassembly 应用程序中安全存储应用程序机密的方法。我们可以在下面的 MSDN 文档中找到服务器端应用程序的详细信息。

https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-3.1&tabs=windows

我们如何将这些秘密用于完全在客户端浏览器中运行的 Blazor WebAssembly 应用程序?

我的基本场景是,需要将密码、产品密钥(许可密钥)信息保留在应用程序代码之外。例如,我们在 Program.cs 的静态 main 方法中加载许可证。

https://i.stack.imgur.com/kCrV1.png

我在 blazor 的文档中进行了搜索,但找不到任何详细信息。请帮助我在 Blazor webassembly 中找到解决此问题的推荐方法。

(对于服务器端,我们有多种选择,但对于客户端,可能是推荐的方式)