问题标签 [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.
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。
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
等等
那么有什么解决方案吗?
blazor - Razor 组件未在 .NET Standard 库中正确编译
我已将一个库转换为 .NET Standard 2.0 以成为 Razor 组件库:
我将 SDK 类型更改为 Razor:
并添加了对 Razor 组件库的引用
但是,在编辑组件时,我发现编译过程失败了。例如,它无法正确映射@bind=..
HTML 标记中的属性,并且 Razor 组件似乎无法正确编译。
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 项目都可以使用该库?
c# - 如何将对象属性作为参数传递给 Razor 组件
我有一个剃须刀组件库,我在其中创建自定义的、可重用的组件。我有一个“ContentItem”组件,我想简单地在组件中绑定对象的属性,然后使用反射或其他方法来发现必要的信息。举个例子:
ContentItem.razor
ContentItem.razor.cs
客户端应用程序中的页面
因此,基本上在使用“ContentItem”组件时您所要做的就是传递 ObjectProperty,然后“ContentItem”组件将执行某种反射和/或检查该参数以根据需要呈现 HTML。
blazor - Blazor -“Aw,Snap!错误代码:STATUS_ACCESS_VIOLATION”错误,如果设置了断点
我有一个 Blazor 服务器端应用程序,它使用我的组件库作为项目参考。
如果我在库中的组件代码中设置断点并在调试模式下运行,我的应用程序开始页面很快就会显示出来,然后 Aw Snap!发生错误。
如果我运行应用程序然后设置或启用断点,一切正常。
什么会导致错误?如何摆脱它?
使用 IIS、Google Chrome 96.0.4664.45 x64 在 VS 2022 中调试
blazor-webassembly - 保存在单独 DLL 中的 blazor 组件中时无法呈现图像
我正在尝试创建一个保存在单独 DLL 中的 Blazor 组件。
简单的东西:只是一个带有图像的 div。
图像被保存在前面提到的单独的 DLL 中,在一个看起来像wwwroot\ComponentName\logo.png
.
然后在ComponentName.razor.css
文件中我尝试调用它:
我的问题是......当我在 Blazor WASM 网站中使用时它不会呈现。
我相信我做错了一件事。
要么我使用了错误的 URL。
或者图像文件的属性配置错误。而且我不完全确定在这里选择什么。我已经尝试过使用Build Action
Content
和Copy Always
使用Resource
. 不太确定,应该如何处理图像。
请指教。
评论接受的答案
尽管可以在此处找到的尼尔的答案是正确的,但这还不够。
首先:两个构建操作似乎都在工作:Content
等等Embedded Resource
。所以事实并非如此。
我注意到的是,当我实际将图像作为图像时:
它确实有效。有什么不同吗?
尼尔指出:_content
文件夹,而不是wwwroot
. 我认为链接文档中不清楚的是正确的文件夹结构,这意味着我必须首先提供组件库名称,然后重复文件夹结构,然后提供文件名。
所以我回到了 CSS 版本,只是为了检查它是否仍然有效。
不工作。从 DevTools 级别调试它时,我注意到指向图像文件的 CSS 链接实际上指向https://localhost:7210/_content/ComponentLibraryName/_content/ComponentLibraryName/ComponentName/logo.png
. 当我删除加倍字符串时......
它确实奏效了。
我不想写这个解释作为接受它的答案,主要是因为唯一改变的是尼尔的答案。除此以外,我没有清楚地理解任何事情。