1

Я использую http://bootstrap-datepicker.readthedocs.org/en/release/ для datepicker с бутстрапом.bootstrap-datepicker дата недействительна

[DisplayName("Date Start")] 
    [DataType(DataType.Date)] 
    public DateTime? DateFrom { get; set; } 


$('.datepicker').datepicker({ 
    format: "mm/dd/yyyy", 
    autoclose: true, 
    clearBtn: true 
}); 

@Html.TextBoxFor(m => m.DateFrom, new { @class = "form-control datepicker", @placeholder = "Start Date" }) 
@Html.ValidationMessageFor(m => m.DateFrom) 

Дата сегодня 10/06/2014. Когда я выбираю дату 10/13/2014, я вижу сообщение «Значение« 10/13/2014 »недействительно для начала даты». а дата 10/12/2014 в порядке.

Где ошибка?

+0

.NET, вероятно, интерпретирующего '10/13/2014' как 10-й день 13-го месяца 2014 года, что является недействительным. Похоже, что он ожидает даты в формате 'dd/mm/yyyy' вместо' mm/dd/yyyy'. –

+0

@Cory, О, спасибо. Да, это помогает! – demo

+0

Возможно, вы быстро прочитали: http://weblogs.asp.net/melvynharbour/mvc-modelbinder-and-localization. Если исправление настроек глобализации в вашем приложении не работает, вам может потребоваться написать собственное связующее устройство. –

ответ

0

это связано с культурами.

У меня была такая же проблема, и я решил ее использовать с помощью библиотеки глобализации.

  • использовать nuget, чтобы добавить в ваш проект файл глобализации 0.1.3 libray.

  • затем включить файлы globalize.js и globalize.cultures.js

  • затем добавьте этот код в свой пользовательский Js файл:

    $.validator.methods.date = function (value, element) { 
    return this.optional(element) || Globalize.parseDate(value, "MM/dd/yyyy") !== null; 
    } 
    
Смежные вопросы