Blazor:如何将 Nullable 对象绑定到 <select>?

gla*_*asa 5 asp.net-core blazor

我想使用 a<select>能够在多个值之间进行选择,或者不选择。

我的组件是这个:

<select @bind="SelectedValue">
    <option value="null">Null</option>
    @for (int i = 0; i < 10; i++)
    {
        <option value="@i">Value : @i </option>
    }
</select>

<hr />
    @if (SelectedValue.HasValue)
    {
        <p>The selected value is : @SelectedValue.Value</p>
    }
    else
    {
        <p>the value is null</p>
    }

@code {
    private int? SelectedValue = null;
}

Run Code Online (Sandbox Code Playgroud)

我可以将<select>值绑定到一个int对象,但我无法绑定该null值。是否有我应该使用的特殊语法,或者只是不支持?

小智 3

为什么不直接使用 -1 而不是 null 呢?

<select @bind="SelectedValue">
    <option value="-1">Null</option>
    @for (int i = 0; i < 10; i++)
    {
        <option value="@i">Value : @i </option>
    }
    </select>
<hr />
@if (SelectedValue>-1)
{
    <p>The selected value is : @SelectedValue.Value</p>
}
else
{
    <p>the value is null</p>
}

@code {
    private int? SelectedValue = -1;
}
Run Code Online (Sandbox Code Playgroud)