You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Razor Server中表单绑定的DateTime类型字段值无法修改问题

问题原因

datetime-local 类型的HTML输入框对值的格式有严格要求,必须符合 yyyy-MM-ddTHH:mm 的ISO 8601格式标准。你当前直接绑定 DateTime? 类型的属性时,Razor默认的转换格式和输入框要求的格式不匹配,导致输入完成后绑定逻辑无法识别输入值,就会重置为默认的属性值。

解决方案

直接修改日期时间输入框的绑定代码,额外指定绑定的格式即可,修改后的代码如下:

<div class="form-group">
    <label for="Starttime" class="control-label">Kezdési idő</label>
    <input form="Starttime" class="form-control" type="datetime-local" @bind-value="@task.Starttime" @bind-value:format="yyyy-MM-ddTHH:mm"/>
</div>

如果你的项目使用的是.NET 5及更早版本,也可以换用手动绑定的写法:

<input form="Starttime" class="form-control" type="datetime-local" value="@task.Starttime?.ToString("yyyy-MM-ddTHH:mm")" @onchange="@(e => task.Starttime = DateTime.TryParse(e.Value?.ToString(), out var dt) ? dt : null)"/>

补充说明

如果你的Starttime属性存储的是UTC时间,绑定前需要转换为本地时间避免显示偏差,可以把绑定部分调整为:

<input form="Starttime" class="form-control" type="datetime-local" @bind-value="@task.Starttime.Value.ToLocalTime()" @bind-value:format="yyyy-MM-ddTHH:mm"/>
验证说明

修改完成后刷新页面测试,日期时间字段的输入值会按照指定格式和模型属性正常双向绑定,不会再出现自动重置的问题,也不会影响其余字段的原有绑定逻辑。

内容的提问来源于stack exchange,提问作者Tibor Joós

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:06:03