用于 onclick 的 Blazor 条件 if 语句

lev*_*s84 4 razor asp.net-core blazor blazor-server-side

如果 IsActive bool 为真,我有一个跨度应该有一个 onclick 属性。否则跨度应该没有 onclick 属性。

例如

@if (IsActive == true)
{
    <span @onclick="@(e => Go.DoSomething("please"))">
        @s.DisplayText
    </span>
}
else
{
    <span>
        @s.DisplayText
     </span>
}
Run Code Online (Sandbox Code Playgroud)

有没有办法避免使用三元运算符的重复代码?例如

@(IsActive == true ? "add onclick method somehow?" : "")
Run Code Online (Sandbox Code Playgroud)

Uma*_*air 10

添加条件的更好方法IsActive == true是在Go.DoSomething方法中。但理想情况下,我会使用可点击disabled的按钮,因为我们可以向按钮添加属性,在您的情况下,您可以在onclick方法中添加条件。

只是按钮的提示,您可以在该属性中添加您的 c# 布尔属性,如下所示:

<button disabled="@IsActive">Save</button>
Run Code Online (Sandbox Code Playgroud)


Gar*_*han 5

您可以执行以下操作。

<span @onclick="@(e => { if (IsActive) Go.DoSomething("please");})">
    @s
</span>
Run Code Online (Sandbox Code Playgroud)

一个Lambda表达式是什么,我认为你真正需要的。