Я вижу, что есть несколько похожих вопросов, но ни один из них не решает мою проблему.
Я работаю над приложением MVC3 с Entity Framework 4.3. У меня есть поле даты в Великобритании, которое я планирую разрешить пользователю редактировать с помощью средства выбора даты Jquery UI (, которое я заработал благодаря этому блогу ).
К счастью для меня, в этом блоге есть инструкции по созданию средства выбора даты с использованием британского формата, однако проверка EF по-прежнему говорит мне, что мне нужно ввести допустимый формат даты. Как ни странно, это не мешает мне отправлять дату в БД, это просто ненавязчивая проверка и отображение сообщения.
На данный момент у меня есть следующая аннотация данных :
[DataType(DataType.Date)]
public System.DateTime Module_Date { get; set; }
, но я также пытался добавить :
[DisplayFormat(DataFormatString="{0:dd/MM/yyyy}")]
, что не дало никакого эффекта. Я надеюсь, что у кого-то есть решение, потому что я не хочу отключать ненавязчивую проверку, чтобы остановить это сообщение об ошибке.
Спасибо
РЕДАКТИРОВАТЬ
После ответа @Iridio я рассмотрел возможность добавления привязки модели, и действительно, из нескольких сообщений, подобных этому, которые я прочитал, это казалось правильным, но то, что у меня есть придумать не имеет никакого эффекта. вот что я пробовал:
public class DateTimeBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
var date = value.ConvertTo(typeof(DateTime), CultureInfo.CurrentCulture);
return date;
}
}
с этим в методе Application_Start()
файла Global.asax.cs
:
ModelBinders.Binders.Add(typeof(DateTime), new DateTimeBinder());
ModelBinders.Binders.Add(typeof(DateTime?), new DateTimeBinder());