不绑定模型的DateTime属性

时间:2013-04-03 06:37:51

标签: asp.net-mvc asp.net-mvc-3 datetime datetimepicker

在我的某个模型的mvc 4项目中,我有DateTime属性。在客户端,我使用jquery datepicker。我希望格式为'dd.mm.yyyy'。我为属性

设置了属性
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd.MM.yyyy}")]
    [Required(AllowEmptyStrings = false, ErrorMessage = "* Field is required")]
    public DateTime DateBuy { get; set; }

在* .js文件中,我将日期格式设置为:

$(".datepicker").datepicker({
    changeMonth: true,
    changeYear: true,
    showOtherMonths: true,
    selectOtherMonths: true,

    dateFormat: "dd.mm.yy",
    buttonImageOnly: true
});

并且我也找到了jquery验证器:

jQuery.validator.addMethod(
    'date',
    function (value, element, params) {
        return value.match(/^\d\d?\.\d\d?\.\d\d\d\d$/);
    },
    ''
);

但是当模型来到行动模型是无效的。错误:"The value '24.02.2013' is not valid for DateBuy."

如果日期为02.24.2013,则一切正常(服务器预期日期格式为'mm.dd.yyyy')。我尝试在web.config中改变文化:

<globalization culture="ru-RU" uiCulture="ru-RU" enableClientBasedCulture="true" />

你有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您是否在向行动提交价值时使用GET或POST动词? 如果您正在使用GET,则日期时间值应始终采用不变的文化格式。

如果您使用的是POST而不是web.config,则全球化设置应足以接受所需格式的日期字符串。