如何在视图(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
控制器代码-
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