小编Mar*_*ers的帖子

blazor组件中OnClick和@onclick有什么区别

我发现了一些奇怪的事情,我想知道是否有人知道答案:

首先,这不是这个问题: Different method Calls in Blazor 该问题涉及 HTML 元素。我说的是组件。

所以我有自己的组件,名为 MyButton;并且它指定了 OnClick 参数:

我的按钮.razor

<button @onclick="OnClick">Do Something</button>

@code {
    [Parameter]
    public EventCallback<MouseEventArgs> OnClick { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当我使用 MyButton 时,我可以准确地使用名称,即

<MyButton OnClick="SomeMethod" />

但这也有效:

<MyButton @onclick="SomeMethod" />

当我从 MyButton.razor 中删除整个 @code 块时,它们都会给我完全相同的错误消息:

<Mybutton OnClick="MyMethod" />

“MyButton”类型的对象没有与名称“OnClick”匹配的属性。

<Mybutton @onclick="MyMethod" />

“MyButton”类型的对象没有与名称“onclick”匹配的属性。

唯一的区别在于大写字母;“OnClick”与“onclick”......这是合乎逻辑的。所以看起来 @onclick 与 OnClick 相同...但它们是吗?

这只是某种超载吗?

onclick blazor

6
推荐指数
1
解决办法
1829
查看次数

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

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

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

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

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

那么有没有办法解决这个问题?

c# blazor razor-component-library

3
推荐指数
1
解决办法
2287
查看次数

标签 统计

blazor ×2

c# ×1

onclick ×1

razor-component-library ×1