我有一个包含日期时间字段的模型
它预先存在的DB中的列的数据类型为“date”,因此它没有时间值
在我的视图中,模型日期字段绑定到jquery-ui日期选择器
页面加载时,它有时间值:1989/02/14 12:00:00 AM
如何防止添加时间值?
我是否必须使用jQuery为每个日期字段手动删除时间部分?
修改 当页面加载它时,没有必要编辑模型
控制器:
ClientModel c = DBContext.Clients.find(id);
//Doing any kind of date formatting here to c.DateOfBirth is ignored
return PartialView("_ClientDetailsView", c);
查看:
@Html.TextBoxFor(model => model.DateOfBirth , new { @class = "date-field" })
我认为解决方案类似于模型属性或HtmlHelper参数。
答案 0 :(得分:1)
您可以使用DataType
属性。用DateOfBirth
装饰ClientModel
中的public class ClientModel
{
[DataType(DataType.Date)]
public DateTime DateOfBirth { get; set; }
}
属性:
DataType
<小时/>
如果[DisplayFormat(DataFormatString = "dd MM, yyyy")]
public DateTime DateOfBirth { get; set; }
属性不符合您的需求,您还可以使用DisplayFormat
属性:
{{1}}
答案 1 :(得分:1)
感谢Henk的帮助
最后,我厌倦了尝试找到一个“正确”的解决方案,所以我编写了以下jquery函数,并根据需要在每个页面上调用它。
function DropTimeSegments() {
$(".datepicker").each(function (index, item) {
$(item).val(FormatDate(new Date($(item).val())));
});
function FormatDate(Date) {
return Date.getFullYear() + '-' + pad(Date.getMonth(), 2) + '-' + pad(Date.getDate(), 2);
}
function pad(num, size) {
var s = num + "";
while (s.length < size) s = "0" + s;
return s;
}