问题标签 [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 投票
2 回答
5478 浏览

dependency-injection - 在 Blazor 中将子组件作为参数传递

我想在 Blazor 中做一些我通常在 React 中做的事情:创建一个内部使用其他子组件的可重用组件,并能够将这些子组件作为参数传递。我需要能够将子组件视为依赖项,可以根据需要注入不同上下文中可能需要的任何自定义实现。

例如,想象一个TextBox.razor组件,它使您能够传递自定义组件以根据需要呈现标签,只要它实现ILabel接口即可。我尝试过这样的事情,但语法似乎无效:

文本框.razor

在此处输入图像描述

从屏幕截图中可以看出,Blazor 不允许我将 ParameterLabel用作组件。知道如何实现这一目标吗?

0 投票
1 回答
1225 浏览

reactjs - 通过使用 JavaScript 互操作导入的 JavaScript 库将 React 应用程序移植到 Blazor 应用程序

我目前有一个 React 应用程序,我正在尝试将其转换为 Blazor WebAssembly 应用程序。React 应用程序有一个导入 JavaScript 库的组件,可以在此处查看其示例代码。如果不授予访问权限,则无法访问导入的charting_library代码本身,但这不应该是回答这个问题的问题。

在我的 React 应用程序中,根据示例代码,我有以下代码(为简洁起见,去掉了):

我已阅读有关Blazor 组件Blazor JavaScript interop的信息,并尝试使用 JavaScript interop 实现组件以使用charting_library我正在使用的 JavaScript,其方式与在 Blazor 中的方式与在我的 React 应用程序中的方式相同。因此,按照上的说明IJSRuntime,我在下面添加了charting_libraryJavaScript 代码wwwroot,并将以下内容添加到index.html

Components\TradingViewChartComponent.razor然后,我创建了一个简单的 Blazor 组件(

也不清楚我是如何在Index.razor. 以下导致错误:

错误是:

“发现具有意外名称 'TradingViewChartComponent' 的标记元素。如果这是一个组件,请为其命名空间添加 @using 指令。”

它指的是模板示例文件SurveyPrompt.razor。我不确定连接是如何建立的,但是当其余代码构建时,这可能会自动解决吗?这不是因为我遇到了与 jQuery 有关的其他错误,例如“找不到'jquery'的类型定义文件”。这在charting_library代码本身中,我猜这在 React 应用程序中不是问题,因为create-react-app用作 Visual Studio React 应用程序模板的一部分添加了必要的依赖项,例如 jQuery。那么如何在 Blazor 应用程序中确保这种依赖关系呢?

这里的主要问题是,如何在 Blazor 应用程序中使用 JavaScript 库,就像在 React 应用程序中使用它一样?额外的问题,例如包含 Blazor 组件Index.razor和我得到的 jQuery 错误是额外的问题,如果它们可以单独回答,则不需要在这里回答(我不介意为它们创建单独的问题)。

感谢任何人都可以提供的任何帮助!我熟悉 C# 和 React,但对 Blazor 很陌生,而且我的 JavaScript 知识有限。

0 投票
2 回答
753 浏览

c# - 这可以将异步函数结果添加到表行中吗?

我正在为我的 REST API 创建 Web 客户端,并且我想在我的表中添加一个包含异步函数结果的字段。

简而言之,我有一个产品列表,列表中的项目具有“UnitID”属性,我用它来发出 GET 请求。当我.Result在我的异步函数结果之后在代码中的任何位置放置时,Visual Studio 的调试器只需跳过负责调用 API 的行并“砖”整个应用程序,没有任何错误或异常。然后我必须重新启动项目。

我试图创建仅用于返回的第二个函数,GetUnit(id).Result但它什么也没提供。我试图返回整个 Unit 对象,然后在表中,GetUnit(item.UnitID).Name但它只是代表对象(我猜......)。我似乎只需要这样做,.Result但是当我这样做时它不起作用。

我的 API 是用 .Net Core 2.2 制作的,我的客户端是用 .Net Core 3.0(Blazor 模板)制作的。这是一个错误还是我不能那样做?谢谢。

0 投票
2 回答
2039 浏览

c# - Blazor 父组件能否知道其中有多少子组件?

我正在创建 2 个 blazor 组件:AlertMessageAlertMessageGroup. AlertMessageGroup旨在包含其中的多个AlertMessage组件。我想AlertMessageGroup有基于AlertMessages 的数量和类型的显示逻辑(AlertMessageType是一个AlertMessage参数,可能会引用一个枚举值)。

父组件(例如AlertMessageGroup)是否有可能知道它包含多少子组件(例如AlertMessage),并有基于此的显示逻辑?

(我会补充一点,理想情况下,我希望能够使用一个AlertMessage独立的,AlertMessageGroup如果我不想的话,不必将它包含在其中)

0 投票
1 回答
100 浏览

blazor-server-side - 是否可能:使用 Blazor 服务器端作为客户端应用程序

有一个现成的 azure 微服务,我需要针对它构建客户端应用程序。有 2 种选择 blazor 服务器端和客户端。因为客户端还没有准备好并且调试能力有限,所以我想使用 blazor 服务器端。

我的问题是是否可以从 blazor 服务器端调用服务,以及是否是个好主意。将其用作客户端应用程序?还有是否可以在 azure 的微服务旁边托管 blazor?

0 投票
1 回答
92 浏览

blazor - Blazor 客户端,服务器项目未发布

当我发布我的 blazor 客户端应用程序时,应用程序的服务器部分(由 asp.net 核心托管)似乎没有发布。

当我无法访问应用程序的任何 api 端点时,我发现出了点问题。

我可以做些什么来发布所有项目/程序集?

0 投票
2 回答
2128 浏览

asp.net-core - Blazor - 更改 DI 服务的属性后,剃须刀页面未更新

使用 dotnet 3.1.100-preview2-014569

好的,请考虑以下示例:

从模板创建一个新的 Blazor WebAssemply 项目,然后添加以下内容:

books.razor

BookService.cs

Startup.cs

NavMenu.razor

怎么了: 不渲染问题

预期行为:单击菜单项 Loan Book 时,页面应显示 Book Loaned,或者如果我单击 Return Book,则应显示 Book Return。但这只有在我单击另一个页面(例如主页)然后再返回时才会发生。

即使页面已经在同一页面上,如何强制页面重新渲染/重新检查来自 BookService 的更新值?

谢谢!

0 投票
2 回答
4081 浏览

blazor - 无法在客户端 blazor 中覆盖 OnAfterRenderAsync

在我的 Blazor 客户端应用程序中,我试图覆盖OnAfterRenderAsync使用

我收到一个错误

没有合适的方法来覆盖!?

另一方面,这个覆盖工作得很好:

任何线索这里有什么问题?

0 投票
2 回答
966 浏览

asp.net-core - AuthorizeRouteView 不适用于已注销的用户

我们开始将项目迁移到 blazor,并且在将内容限制为仅登录用户时遇到了一些问题。

对于此测试,我们使用了标准的 Visual Studio 2019 Blazor 服务器端项目模板,并启用了本地用户和帐户身份验证。

然后我们将 App.razor 文件更改为以下内容:

中的代码<NotAuthorized>永远不会被击中,我已经确认浏览器上没有 cookie,甚至在私人浏览器窗口中也尝试过。

我在另一个组件中注入了 HTTPContext 以查看当前用户的情况。当前用户不为空,它具有身份,但显示未经身份验证,并且没有预期的声明。

我在这里缺少什么吗?

0 投票
2 回答
1185 浏览

asp.net-mvc - 究竟是什么触发了 Blazor 组件重绘自身?

我有 Blazor WebAssembly 应用程序。我有一个共享模型类的父子组件。当子级更新模型上的值时,子级会重绘自己,但父级不会。那么究竟是什么触发了 Blazor 组件重绘自身呢?我找不到有关 Blazor 特定方面的任何文档。

我有一个 POCO 模型课。在实际应用中,这来自一个单独的程序集。模型/AwesomenessModel.cs:

我的索引页。页面/索引.razor:

父类。我添加了一个重绘按钮来验证内容是否应该已更改。组件/Awesomeness.razor:

对 Awesomeness 模型进行实际更改的子组件。组件/AwesomenessSelector.razor:

当我运行应用程序并单击一个令人敬畏的级别时,该级别会消失(AwesomenessSelector 组件重绘),但其余部分仍然可见,并且没有“Awesomeness is...”消息(Awesomeness 组件不更新)。如果我然后单击“重绘”按钮强制重绘 Awesomeness 组件,我会收到正确的“Awesomeness is...”消息。

我可能没有以正确的方式构建代码以使父组件自动重绘。在这种情况下我应该如何构建它?