您好,我想将2
类型的int
变量绑定到min
类型的max
的input
和time
值。我怎样才能做到这一点?我不知道要在bind
字段中放置什么,因为有2个不同的变量。另外还有min
和max
属性。
<input type="time" min="@model.min" max="@model.max" bind=?/>
我应该在bind
中放什么?
更新经过更彻底的分析,我决定我需要2个Timespan
类型的变量,并将这些变量绑定到2个time
类型的输入。
您不能将TimeSpan直接绑定到Blazor中的输入,但是可以使用属性将其转换为字符串或从字符串转换为。
<input type="time" min="@model.min" max="@model.max" bind="@TimeProxy" />
和
@functions
{
string TimeProxy { get => model.Time.ToString(); set => TimeSpan.TryParse(value,out model.Time); }
}
先前的解决方案不适用于.net Core 3.1,所以我将添加一个更新的解决方案:
使用Blazor:
<EditForm Model=@model OnValidSubmit="Submit">
<InputText type="time" @bind-Value="TimeProxy" />
</EditForm>
也需要更改代码。
@code {
// This field is required as you can not use property in out statement
private TimeSpan LocalTime = TimeSpan.FromHours(0);
private string TimeProxy {
get => model.Time.ToString();
set => TimeSpan.TryParse(value,out LocalTime);
}
private void Submit() {
model.Time = LocalTime;
// following submit logic...
}
}