blazorstrap InputType.选择不绑定



尝试用blazorstrap创建一个非常基本的表单。

@page "/testform"
<h1> test form @Status</h1>
<EditForm Model=@Person OnSubmit=@FormSubmitted>
<DataAnnotationsValidator />
<ValidationSummary />
<p>
<label>
name:
<BSBasicInput T="string"
InputType="InputType.Text"
@bind-value=Person.Name />
</label>
</p>
<p>
<label>
Age:
<InputNumber @bind-Value="Person.Age" />
</label>
</p>
<p>
<label>
type:
<InputSelect @bind-Value="Person.Type">
<option value="">Select classification ...</option>
@foreach (var enumType in Enum.GetValues(typeof(BankAccountType)))
{
<option value="@enumType">@enumType</option>
}
</InputSelect>
@* <BSBasicInput T="BankAccountType?" InputType="InputType.Select" @bind-Value="Person.Type"> *@
@*     <option value="">Select classification ...</option> *@
@*     @foreach (var enumType in Enum.GetValues(typeof(BankAccountType))) *@
@*     { *@
@*         <option value="@enumType">@enumType</option> *@
@*     } *@
@* </BSBasicInput> *@
</label>
</p>
<input type="submit" value="Submit" class="btn btn-primary" />
</EditForm>
@code
{
string Status = "Not submitted";
Person Person = new Person();
BankAccountType? AccountType = null;
void FormSubmitted()
{
Status = "Form submitted";
Console.WriteLine($"person: {Person} + " + AccountType);
}
private void SelectedChanged(BankAccountType? value)
{
Console.WriteLine("changed " + value);
}
}

person类

public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public BankAccountType? Type { get; set; }
public override string ToString()
{
var accountType = Type.HasValue ? Type.Value.ToString() : "";
return $"{Name} is {Age} years old {accountType}";
}
}

BSBasicInput的名称绑定工作得很好。使用InputSelect进行选择工作良好。但是当我尝试使用BSBasicInput与InputType。选择(请参阅注释掉的部分)。我无法让它绑定,或者至少显示它正在改变或设置任何Person。当我直接在razor文件中为它创建属性时,输入or。

肯定我这里做错了什么,它不是blazorstrap,但看不出它现在是什么

<BSBasicInput T="BankAccountType" InputType="InputType.Select" @bind-Value="Person.Type">
<option value="">Select classification ...</option>
@foreach (var enumType in Enum.GetValues(typeof(BankAccountType)))
{
<option value="@enumType">@enumType</option>
}
</BSBasicInput>

这工作。似乎BSBasicInput不能处理可空的枚举

最新更新