c# - 如何在视图(Razor)中转换包含日期时间值的 ViewData 并分配给日期时间选择器输入字段(本地日期时间)
问题描述
控制器代码 -
ViewData["fromDate"] = formcollection.fromDate; (毫无疑问,我能够在 javascript 中看到 viewdata 值)
.cshtml 视图- <input type="datetime-local" id="fromDate" value="@ViewData["fromDate"] />
上述任务无效。
解决方案
<input type="datetime-local" id="fromDate" value="@(((DateTime)ViewData["fromDate"]).ToString("yyyy-MM-dd"))" />
但是,如果您使用的是 ASP.NET Core,则应该使用 ViewModel 和输入标签助手。然后在标签助手上设置格式字符串,它会正确格式化日期:
public class MyViewModel
{
// various properties for the view
public DateTime FromDate {get;set;}
}
然后你的标签助手:
<input asp-for="FromDate" asp-format="yyyy-MM-dd" />
请注意,格式必须符合yyyy-MM-dd
RFC 3339。datetime-local 控件将负责在用户的语言环境中呈现值。
我在这里写过关于在 ASP.NET Core 中使用 DateTimes 的博客。它以 Razor 页面为重点,但这些原则也适用于 MVC:https ://www.mikesdotnetting.com/article/352/working-with-dates-and-times-in-razor-pages-forms
推荐阅读
- javascript - 如何设置值数组以动态接受角度 4 中输入标签的属性
- python - Django - 点击后页面不加载
- function - 卡在一个似乎没有在循环中更新的变量上
- swift - WKWebView 无法运行服务器请求 js,为什么?
- clickhouse - 响应引擎的重复行 - 合并
- java - android 上的 sqlite 中的单引号问题。需要在不替换引号的情况下解决
- qt - 有没有办法在 QML 中设置线性渐变 stepwith
- python - 如何在python中将元素添加到空JSON?
- mysql - 从 ID 中删除第一个字符
- apache - TYPO3 9.5 口语 URL - 如何重写/重定向以前的 RealUrl 页面后缀为 .html