首页 > 解决方案 > 为什么 value="string-value" 可以与 input type="time" 一起使用,而不是 bind-value="string-value"

问题描述

我正在一个简单的网站上尝试一些 Blazor(我是新手)。我创建了一个带有字符串值“08:00”的绑定,并将 i 绑定到一个输入字段,如下所示:

<input @bind-value="@StartValue" @bind-value:event="onchange" class="col-sm-1" type="time"/>
@code {
public string StartValue { get; set; } = "08:00";
}

这会生成错误“无法从 'string' 转换为 'System.DateTime'”。但是,当我删除绑定并按以下方式创建输入时:它工作正常。

<input value="08:00" class="col-sm-1" type="time"/>

任何想法为什么会有差异?使用 DateTime 对我来说没有意义,如果我可以使用 TimeSpan,我会同意,但这也不起作用。

标签: c#htmlblazor

解决方案


使用@bind-value,您将绑定到一个字符串类型,该类型不适用于 type="time"。

使用value,您输入了正确的“时间”类型,而不是字符串。当您输入一个像 'foo' 这样的字符串时,它将不起作用。


推荐阅读