Я борюсь с этим в течение нескольких часов, У меня есть модель с этим свойствомИзменить DateTime Информация о культуре для конкретного ввода даты и времени
public DateTime ValidTo { get; set; }
Я отображать это свойство в View с измененным форматом
@Html.TextBoxFor(m => Model.ValidTo, "{0:dd.MM.yyyy}" })
И проблема начинается, когда я отправлю форму, , потому что свойство Model.ValidTo
имеет значение dd/MM/yyyy
. Переключение дня и месяца. Это должно быть MM/dd/yyyy
.
Как сопоставить собственный формат даты в формате даты в модели? Могу ли я установить пользовательский формат даты в модели? Я не могу установить культуру для всей страницы, мне нужно сделать это только для одной модели или лучше сделать это для конкретного свойства datetime в модели.
Любая идея?
Эксперимент 1 - Custome модель данных Binder - Не работает
Я попытался решение от этого ответа DisplayFormat ApplyFormatInEditMode
[DateTimeFormat(Format = "dd.MM.yyyy")]
public DateTime ValidTo { get; set; }
public class DateTimeFormatAttribute : ValidationAttribute
{
public string Format { get; set; }
public override bool IsValid(object value)
{
if (value == null)
return true;
DateTime val;
try
{
val = DateTime.ParseExact(value.ToString(), Format, null);
}
catch (FormatException)
{
return false;
}
//Not entirely sure it'd ever reach this, but I need a return statement in all codepaths
return val != DateTime.MinValue;
}
}
но в представлении, отображается формат даты и времени по умолчанию, и после подачи формата dd.MM.yyyy
, модель ведет себя одинаково.
Вам нужно будет создать настраиваемое связующее устройство –
@StephenMuecke Я пробовал, но не добился успеха, не знаю, что я делаю неправильно:/ – Muflix
Возможный дубликат [Установить культуру в приложении ASP.Net MVC] (http: /stackoverflow.com/questions/1560796/set-culture-in-an-asp-net-mvc-app) –