问题标签 [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.

0 投票
1 回答
305 浏览

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 项目都可以使用该库?

0 投票
1 回答
252 浏览

asp.net-core - 如何在 Blazor Server 应用程序中导航到文件夹的默认页面 (.razor)?

在我的 blazor 应用程序中,我有一个剃须刀组件(页面)文件夹的层次结构。每个文件夹代表一个数据模型并包含 4 个 .razor 页面。

等等

这些页面的 URL:

我的目标是当我在浏览器中输入时,/contacts它应该被路由到该文件夹​​中的默认页面,/contacts/list 或者如果我输入/accounts,它必须路由到/accounts/list

我怎样才能做到这一点?

0 投票
0 回答
520 浏览

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 列表中使用“检查输入”方法。

这是我的简化代码:

如何检查输入值的存在并验证它?

0 投票
1 回答
19 浏览

razor-components - 使用 Action 调用 RenderComponent 时出现 ArgumentNullException

我正在尝试使用 EventBack 参数测试自定义 Razor 组件:

我正在使用 bUnit 和 xUnit 来尝试测试 EventCallback。这是我的测试方法:

当我尝试运行测试时,我从 RenderComponent() 中得到了一个 ArgumentNullException,但我不知道它会是什么,因为一切都在 lambda 中。

0 投票
1 回答
19 浏览

nuget - 自定义 Razor 组件 NuGet 库的行为不同?

我创建了 3 个组件,它们具有完全相同的实现,只有 1 个区别:

  • 第一个组件(MyTest)与其父组件在同一个项目中实现
  • 第二个(Component1)来自不同(但相同的解决方案)
  • 第三个(CSInput)是从 NuGet 包中导入的。以下是同一个父级中所有 3 个的调用。

razor 组件实现如下:

父实现的片段:

由于未知原因,编译器在CSInput 的 Disabled 属性上发出了 CS1503(无法从“布尔”转换为“字符串”)。知道为什么吗?非常感谢!

0 投票
1 回答
100 浏览

asp.net-core-mvc - Asp.net core RazorComponent 使用动态
  • 我正在我的 asp.net 核心 mvc 应用程序中创建一个 RazorComponent。

    该组件中有一个 html 列表,该列表是根据从模型中获取的项目数动态生成的。

    UI 看起来像这样(如预期的那样)

    物品清单

    问题

    UI 上的加号和减号按钮应该增加或减少列表中每个项目的数量。

    我写的功能是

    但是,正如您所看到的,由于增量与参数 changeQuantity 绑定,因此单击任何加号或减号按钮会同时更改每个列表项的数量。

    当单击列表上的按钮时,如何修改代码以识别一个列表项并仅更改该项目的数量。

    0 投票
    0 回答
    40 浏览

    c# - Razor Page OnGetAsync 提前渲染,因此未显示数据

    我有一个呈现用户列表的 Razor 页面。此列表是可用用户总数的子集。OnGetAsync获取可用用户的总数和用户的子集。

    我注意到 UI 在语句期间呈现,TotalRecords=因此当该语句和Users=语句完成时,屏幕已经呈现并且不包含任何条目,因为语句尚未完成。

    那么如何让屏幕重新渲染更新的信息呢?

    延迟不到一秒。

    0 投票
    0 回答
    55 浏览

    c# - 我可以将 RAZOR 组件中的值绑定到字符串数组中的值吗?

    我有一个页面,里面有一个表格。如果他们愿意,我想让用户能够添加自定义输入。我还希望能够快速更改这些自定义输入的数量。

    例如:

    前面的复选框将该输入添加到提交的表单数据中。

    这是我尝试过的

    当我运行它时,会发生以下情况:

    1. 即使我没有设置“值”,输入字段也已经填写了“customInputN”。
    2. 当我更改其中一个输入时,它总是恢复为“customInputN”
    3. 当我离开那个input type="text"领域时,我得到了例外System.IndexOutOfRangeException: Index was outside the bounds of the array.
    4. 我在 HTML 中的循环处设置了一个断点for,它似乎遍历了两次循环。

    我正在尝试的甚至可能吗?


    编辑:

    根据要求,这是 ifMAX_CUSTOM_INPUTS为 3 的 HTML 输出:

    0 投票
    1 回答
    90 浏览

    asp.net-core - Blazor 中的 Html.BeginForm

    使用 MVC 时,您可以使用

    显示来自控制器的错误消息。

    在我的一个控制器中,我有这个代码

    此代码有效,因为我无法添加第二个同名游戏。但是如何在带有 blazor 的 razor-component 中显示错误消息?

    我尝试了 Html.Beginform 但我得到了一个错误。

    0 投票
    0 回答
    18 浏览

    razor - 是否可以更改每个 Razor 组件的 RenderMode?

    我正在使用组件标记助手在 Razor 页面内呈现 Razor 组件。大部分组件只需要在 RenderMode = Static 中渲染(但并不真正关心),但少数(第三方)组件需要 ServerPrerenderd 作为 RenderMode,如果不渲染为 Static,至少有一个要付出高昂的代价。

    是否可以更改 RenderMode,将 RenderMode=Static 作为默认值并将需要它的人更改为 Server 或默认为 Server 并仅排除那些无法处理的人?