问题标签 [razor-components]
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.
asp.net - 如何创建包含 JavaScript 互操作的 Blazor 库
语境:
我们想为我们的 Blazor-WA 项目创建一个内部 Blazor 库。Blazor 库包含可供我们所有其他 Blazor 项目使用的模板组件。
Blazor 库中的一些组件与 JavaScript 合并。因此我们想使用 Blazor 提供的 JS-Interop。
方法:
ASP.NET Core Razor 组件类库(RCL) 似乎是创建 Blazor 库的合适方法。我们创建了一个名为 Blazor 库BlazorLib
,现在通过 RCL 实现。调用的 Blazor WebAssembyly 项目BlazorLib-dev
使用该库BlazorLib
。这是结构:
问题:
RCL 似乎不提供 JavaScript 互操作:
问题:
创建包含 JS-Interop 的 Blazor 库的正确方法是什么,任何第二个 Blazor-WA 项目都可以使用该库?
asp.net-core - 如何在 Blazor Server 应用程序中导航到文件夹的默认页面 (.razor)?
在我的 blazor 应用程序中,我有一个剃须刀组件(页面)文件夹的层次结构。每个文件夹代表一个数据模型并包含 4 个 .razor 页面。
等等
这些页面的 URL:
我的目标是当我在浏览器中输入时,/contacts
它应该被路由到该文件夹中的默认页面,/contacts/list
或者如果我输入/accounts
,它必须路由到/accounts/list
我怎样才能做到这一点?
asp.net-core - Blazor / 如何检查 InputText 的值是否存在于数据库中?
Blazor 服务器应用 (.Net 5.0)、Dapper
在我的(Razor)表单上,我有一个字段“名称”,我需要在输入时检查它。在页面加载时,OnInitializedAsync()
我从数据库中获取所有名称为List<string> names
. 然后当用户输入一个新名称时,我需要触发CheckNames()
方法来检查<InputText>
列表中是否存在的值 -标签的值names.Contains(inputValue)
在哪里。如果存在,则显示一条消息,说明该值已存在。问题是 - 我不知道如何从 C# 代码中引用 HTML 标签。或者也许我的验证逻辑是错误的。inputValue
<InputText>
详细信息:我在页面加载时获取所有名称,因为使用事件检查内存中列表中的名称是否存在会更快onchange
,而不是当用户在表单中键入新名称时每次都为每个字母查询 SQL。另一种方法是在表单提交阶段检查 SQL 中的名称是否存在。但是,我倾向于从 fetched 列表中使用“检查输入”方法。
这是我的简化代码:
如何检查输入值的存在并验证它?
razor-components - 使用 Action 调用 RenderComponent 时出现 ArgumentNullException
我正在尝试使用 EventBack 参数测试自定义 Razor 组件:
我正在使用 bUnit 和 xUnit 来尝试测试 EventCallback。这是我的测试方法:
当我尝试运行测试时,我从 RenderComponent() 中得到了一个 ArgumentNullException,但我不知道它会是什么,因为一切都在 lambda 中。
nuget - 自定义 Razor 组件 NuGet 库的行为不同?
我创建了 3 个组件,它们具有完全相同的实现,只有 1 个区别:
- 第一个组件(MyTest)与其父组件在同一个项目中实现
- 第二个(Component1)来自不同(但相同的解决方案)
- 第三个(CSInput)是从 NuGet 包中导入的。以下是同一个父级中所有 3 个的调用。
razor 组件实现如下:
父实现的片段:
由于未知原因,编译器在CSInput 的 Disabled 属性上发出了 CS1503(无法从“布尔”转换为“字符串”)。知道为什么吗?非常感谢!
c# - Razor Page OnGetAsync 提前渲染,因此未显示数据
我有一个呈现用户列表的 Razor 页面。此列表是可用用户总数的子集。OnGetAsync获取可用用户的总数和用户的子集。
我注意到 UI 在语句期间呈现,TotalRecords=
因此当该语句和Users=
语句完成时,屏幕已经呈现并且不包含任何条目,因为语句尚未完成。
那么如何让屏幕重新渲染更新的信息呢?
延迟不到一秒。
c# - 我可以将 RAZOR 组件中的值绑定到字符串数组中的值吗?
我有一个页面,里面有一个表格。如果他们愿意,我想让用户能够添加自定义输入。我还希望能够快速更改这些自定义输入的数量。
例如:
前面的复选框将该输入添加到提交的表单数据中。
这是我尝试过的
当我运行它时,会发生以下情况:
- 即使我没有设置“值”,输入字段也已经填写了“customInputN”。
- 当我更改其中一个输入时,它总是恢复为“customInputN”
- 当我离开那个
input type="text"
领域时,我得到了例外System.IndexOutOfRangeException: Index was outside the bounds of the array.
- 我在 HTML 中的循环处设置了一个断点
for
,它似乎遍历了两次循环。
我正在尝试的甚至可能吗?
编辑:
根据要求,这是 ifMAX_CUSTOM_INPUTS
为 3 的 HTML 输出:
asp.net-core - Blazor 中的 Html.BeginForm
使用 MVC 时,您可以使用
显示来自控制器的错误消息。
在我的一个控制器中,我有这个代码
此代码有效,因为我无法添加第二个同名游戏。但是如何在带有 blazor 的 razor-component 中显示错误消息?
我尝试了 Html.Beginform 但我得到了一个错误。
razor - 是否可以更改每个 Razor 组件的 RenderMode?
我正在使用组件标记助手在 Razor 页面内呈现 Razor 组件。大部分组件只需要在 RenderMode = Static 中渲染(但并不真正关心),但少数(第三方)组件需要 ServerPrerenderd 作为 RenderMode,如果不渲染为 Static,至少有一个要付出高昂的代价。
是否可以更改 RenderMode,将 RenderMode=Static 作为默认值并将需要它的人更改为 Server 或默认为 Server 并仅排除那些无法处理的人?