【发布时间】:2015-06-12 10:47:16
【问题描述】:
当培养被选择时,我正在尝试在培养物(en-US和FR-FR)模型中绑定日期。 用户选择项目语言来创建条目。例如 : 在 en-US 中添加新闻 |在 fr-FR 中添加新闻
型号:
[Column(TypeName = "datetime2")]
public DateTime CreatedOn { get; set; }
查看:
@Html.TextBox("CreatedOn", Model.CreatedOn, new { @class = "form-control", @id = "datepicker" , @type="text"})
日期选择器和解析脚本:
$(document).ready(function () {
$('#datetimepicker2').datetimepicker({
locale: '@Model.CultureInfoCode',
format: 'L'
}).data("DateTimePicker").date();
//$('#datetimepicker2').moment().format("MM/dd/YYYY");
});
$(document).ready(function () {
$.validator.methods.date = function (value, element) {
moment.locale('@Model.CultureInfoCode'); // CultureInfoCode is the culture of item being entered.
return moment(value);
//parseDate(value, null, "@Model.CultureInfoCode");
// return this.optional(element) || Globalize.parseDate(value) !== null;
}
});
解析日期似乎也可以正常工作。如果为整个网站选择了文化,则模型将绑定所有值,包括日期(en-US ) 与正在输入的项目的文化相匹配(即用英语添加新闻 (en-US))。但是,当我用法语(fr-FR)添加新闻并将日期输入为 26/01/0001 时,它会绑定除日期以外的所有字段,并将模型中的值设为 1/1/0001,并在显示错误消息的同一视图中返回:
**The value '26/01/0001' is not valid for 'CreatedOn' .**
model.Validate 在控制器中也是 false。
请帮忙。 谢谢
【问题讨论】:
标签: jquery asp.net-mvc datetime momentjs globalization