我有一些日期时间格式的文本框值(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/