如何在视图(Razor)中转换包含日期时间值的 ViewData 并分配给日期时间选择器输入字段(datetime-local)

How to convert ViewData which is containing datetime value in it inside view(Razor) and assign to datetime picker input field(datetime-local)

控制器代码-

ViewData["fromDate"] = formcollection.fromDate; (毫无疑问,我能够在 javascript 中看到视图数据值)

.cshtml 视图-

以上分配无效。

<input type="datetime-local" id="fromDate" value="@(((DateTime)ViewData["fromDate"]).ToString("yyyy-MM-dd"))" />

但是,如果您使用的是 ASP.NET 核心,则应使用 ViewModel 和 input tag helpers。然后在标签助手上设置格式字符串,它负责正确格式化日期:

public class MyViewModel
{
    // various properties for the view
    public DateTime FromDate {get;set;}
}

那么你的标签助手:

<input asp-for="FromDate" asp-format="yyyy-MM-dd" />

注意根据RFC 3339格式必须是yyyy-MM-dd。 datetime-local 控件将负责在用户的区域设置中显示值。

我在这里写了关于在 ASP.NET Core 中使用 DateTimes 的博客。它以 Razor Pages 为重点,但原则也适用于 MVC:https://www.mikesdotnetting.com/article/352/working-with-dates-and-times-in-razor-pages-forms