问题标签 [razor-component-library]

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

c# - 将控制器添加到 .Net Core 3.1 的 Razor 组件库

我正在迁移到 MVC Core 3.1,谢天谢地,在我不得不迁移 RCL 之前并不难。

在 RCL 中,我包含了一些常见的控制器,为了使用Controller基类和IActionResult类型,我使用了 Nuget Microsoft.AspNetCore.Mvc.Abstraction,但它仅适用于 .net Core 2.2。

为什么我在 Nuget 存储库中找不到更新的 3.1 版本?

当我导航到定义时,IActionResult我会看到一个版本为 3.1.0 的文件,所以我想应该有一种方法可以引用它而不是 2.2。

0 投票
2 回答
3735 浏览

c# - Blazor:在 Razor 文件中定义命名空间

问题:有没有办法在 Blazor 的 .razor 文件中定义命名空间。

问题说明:Blazor 中的 Razor 文件没有定义命名空间(只有类后面的代码有一个,它应该与项目中的 .razor 文件位置匹配)。这导致了 GitHub 上的一个问题,它限制了我提供带有少量命名空间的 Razor 组件库。

Github 问题:这源于我不认同的微软哲学:文件名不区分大小写。我有一个文件夹,可以说它被命名为“FooBar”。在我的项目中,我将其重命名为“Foobar”。Windows 没有正确重命名它,或者在 Github 中签入时它没有被视为更改。结果,我的命名空间“Foobar”后面的代码不再匹配我的 /razor 文件“FooBar”的命名空间,导致 Github 上出现构建错误(它在我的电脑上运行良好)。如果我能够在 .razor 文件中指定命名空间,就不会发生这种情况。

组件库问题:我正在制作一个我想在 NuGet 上提供的组件库。我想将所有组件保存在单独的文件夹中(假设为单一责任)。当我现在想要包含这个组件库时,_imports 文件将为@include作为库一部分的每个文件夹都有一个,这也是因为我无法将文件夹的工作与组件所在的命名空间分开。我想说的@include Foobar是比@include Foobar.Checkbox等等@include Foobar.Radiobutton等等

那么有什么解决方案吗?

0 投票
1 回答
42 浏览

blazor - Razor 组件未在 .NET Standard 库中正确编译

我已将一个库转换为 .NET Standard 2.0 以成为 Razor 组件库:

我将 SDK 类型更改为 Razor:

并添加了对 Razor 组件库的引用

但是,在编辑组件时,我发现编译过程失败了。例如,它无法正确映射@bind=..HTML 标记中的属性,并且 Razor 组件似乎无法正确编译。

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 投票
2 回答
1136 浏览

c# - 如何将对象属性作为参数传递给 Razor 组件

我有一个剃须刀组件库,我在其中创建自定义的、可重用的组件。我有一个“ContentItem”组件,我想简单地在组件中绑定对象的属性,然后使用反射或其他方法来发现必要的信息。举个例子:

ContentItem.razor

ContentItem.razor.cs

客户端应用程序中的页面

因此,基本上在使用“ContentItem”组件时您所要做的就是传递 ObjectProperty,然后“ContentItem”组件将执行某种反射和/或检查该参数以根据需要呈现 HTML。

0 投票
1 回答
186 浏览

blazor - Blazor -“Aw,Snap!错误代码:STATUS_ACCESS_VIOLATION”错误,如果设置了断点

我有一个 Blazor 服务器端应用程序,它使用我的组件库作为项目参考。

如果我在库中的组件代码中设置断点并在调试模式下运行,我的应用程序开始页面很快就会显示出来,然后 Aw Snap!发生错误。

如果我运行应用程序然后设置或启用断点,一切正常。

什么会导致错误?如何摆脱它?

使用 IIS、Google Chrome 96.0.4664.45 x64 在 VS 2022 中调试

0 投票
1 回答
25 浏览

blazor-webassembly - 保存在单独 DLL 中的 blazor 组件中时无法呈现图像

我正在尝试创建一个保存在单独 DLL 中的 Blazor 组件。

简单的东西:只是一个带有图像的 div。

图像被保存在前面提到的单独的 DLL 中,在一个看起来像wwwroot\ComponentName\logo.png.

然后在ComponentName.razor.css文件中我尝试调用它:

我的问题是......当我在 Blazor WASM 网站中使用时它不会呈现。

我相信我做错了一件事。

  1. 要么我使用了错误的 URL。

  2. 或者图像文件的属性配置错误。而且我不完全确定在这里选择什么。我已经尝试过使用Build Action ContentCopy Always使用Resource. 不太确定,应该如何处理图像。

请指教。

评论接受的答案

尽管可以在此处找到的尼尔的答案是正确的,但这还不够。

首先:两个构建操作似乎都在工作:Content等等Embedded Resource。所以事实并非如此。

我注意到的是,当我实际将图像作为图像时:

它确实有效。有什么不同吗?

尼尔指出:_content文件夹,而不是wwwroot. 我认为链接文档中不清楚的是正确的文件夹结构,这意味着我必须首先提供组件库名称,然后重复文件夹结构,然后提供文件名

所以我回到了 CSS 版本,只是为了检查它是否仍然有效。

不工作。从 DevTools 级别调试它时,我注意到指向图像文件的 CSS 链接实际上指向https://localhost:7210/_content/ComponentLibraryName/_content/ComponentLibraryName/ComponentName/logo.png. 当我删除加倍字符串时......

它确实奏效了。

我不想写这个解释作为接受它的答案,主要是因为唯一改变的是尼尔的答案。除此以外,我没有清楚地理解任何事情。