2

我有一个包含日期时间字段的模型。
它表示的数据库中的列是数据类型“日期”,因此它没有时间值。
在我看来,模型日期字段绑定到 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 参数。

4

2 回答 2

2

您可以为此使用该DataType属性。用它装饰你的DateOfBirth财产ClientModel

public class ClientModel
{
    [DataType(DataType.Date)]
    public DateTime DateOfBirth { get; set; }
}

另见DataType枚举


DisplayFormat如果DataType属性不符合您的需要 ,您也可以使用该属性:

[DisplayFormat(DataFormatString = "dd MM, yyyy")]    
public DateTime DateOfBirth { get; set; }
于 2013-11-08T12:50:20.570 回答
1

感谢您的帮助亨克

最后,我厌倦了试图找到一个“正确”的解决方案,所以我编写了以下 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;
}
于 2013-11-11T06:49:44.023 回答