c# - 自动将 View 中的元素映射到 dateTime 类型的模型

标签 c# asp.net asp.net-mvc date-format asp.net-mvc-5

我有一些日期时间格式的文本框值(DatePicker 提供的默认值 - 例如 - 01/23/2014)。

  <input type="text" name="OrderDate" value="" id="OrderDate" class="datepicker field field119 datepicker-init" />

我在模型类中有与 View 中的元素具有相同名称和 ID 的相关属性。

 public DateTime OrderDate { get; set; }

此时一切都已匹配,一旦提交,我就会在我的 Controller 中获得正确的值。

现在 - 我想更改默认的 DatePicker 格式 - 例如:

$(".datepicker").datepicker({
                minDate: 0,
                dateFormat: 'dd/mm/yy'
            });

而且我未能“解释”模型属性如何序列化文本框值 - 相反,我得到的是默认日期时间而不是我的时间。

问题:如何更改 DateTime 属性知道如何序列化的文本框日期格式?

最佳答案

好的,这就是你如何让它工作的。

首先 jQuery UI 使用 dd/mm/y 格式化您需要的日期,因此您需要将您的 javascript 更改为:

$(".datepicker").datepicker({
                minDate: 0,
                dateFormat: 'dd/mm/y'
            });

在这里查看 jsFiddle:

http://jsfiddle.net/hutchonoid/Fa8Xx/1376/

然后你需要在 View 中格式化模型日期,你可以这样做:

@Html.TextBoxFor(m => m.OrderDate, String.Format("{0:dd/M/yy}", Model.OrderDate),
  new { @class = "datepicker field field119 datepicker-init" })

这与将日期发回服务器时的模型绑定(bind)配合得很好。

关于c# - 自动将 View 中的元素映射到 dateTime 类型的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21209937/

相关文章:

c# - TopShelf [失败] 停止不能为空

asp.net - 在数据列表中的两列之间放置固定空间

c# - 布局 Action 链接路由不正确

javascript - Microsoft JScript 运行时错误 : Member not found

c# - 我可以在中继器中使用循环吗?推荐吗?

asp.net-mvc - 如何为 Entity Framework 重新创建数据库?

c# - 统一,C# |如何在方法之间设置等待时间?

c# - 字段 'LogicalName' 缺少必需的成员 'Target'

c# - 如何在 C# 中为任何用户创建 "AppData\Roaming"中的文件文本

c# - 扩展 WPF 工具包 - 如何添加对项目的引用?