2014-12-12 2 views
-1

У меня есть ASP.NET MVC Create View.Пользовательский формат DateTime в ASP.NET MVC

Это мнение было переплетены ViewModel, который содержит два DateTime объекта:

[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)] 
public DateTime When { get; set; } 
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)] 
public DateTime Until { get; set; } 

Я обязывающие его DatePickers так:

@Html.EditorFor(model => model.When, new { @class = "form-control ui-datepicker-my" }) 
@Html.EditorFor(model => model.Until, new { @class = "form-control ui-datepicker-my" }) 

И datepickers сконфигурированные так:

<script type="text/javascript"> 
    $().ready(function() 
    { 
     $(".ui-datepicker-my").datepicker({ 
      dateFormat: "dd-mm-yy" 
     }); 
    }); 
</script> 

Проблема в том, что когда я получаю POSTING форму, моя модель недействительна. Я имею в виду, что дата «22 -02-2014» преобразуется в неправильном формате (он пытается читать «22» в качестве месяца)

Я не хочу вмешиваться в глобальную культуру.

Как это сделать?

Я попытался отредактировать его, нравится:

@Html.EditorFor(model => model.When,"{0:dd-MM-yyyy}", new { @class = "form-control ui-datepicker-my" }) 

Но без прогресса

+0

Вам необходимо либо установить культуру сервера таким образом, чтобы он соответствовал этому формату, или создать пользовательскую модель связующего. –

+0

К сожалению, вы столкнетесь со множеством проблем с датами, если не заблокируете настройку культуры. –

ответ

0

Если вы действительно настаиваете на не устанавливая культуру для приложения/страницы (она собирается укусить вас). Вы можете использовать это:

DateTime.TryParseExact(inputedDateString, formatOfInput, CultureInfo.GetCultureInfo("en-GB"), DateTimeStyles.None, out result)) 

так что-то вроде

DateTime myDate = DateTime.MinValue; 
string valueFromForm = "22-02-2014"; 
DateTime.TryParseExact(valueFromForm , "dd-MM-yyyy", CultureInfo.GetCultureInfo("en-GB"), DateTimeStyles.None, out myDate)) 
+0

Пойду с изменением информации о культуре. Если все говорят, что это хорошо, я верю. – Tomasz

Смежные вопросы