これに似た質問がいくつかありますが、私の問題を解決するものはありません。
Entity Framework 4.3 を使用して MVC3 アプリに取り組んでいます。ユーザーが Jquery UI datepicker を使用して編集できるようにする予定の英国の日付フィールドがあります (これは、このブログのおかげで機能しました)。
幸いなことに、このブログには、英国形式を使用して日付ピッカーを作成する手順が含まれていますが、EF 検証では、有効な日付形式を入力する必要があることが示されています。奇妙なことに、日付をDBに送信することを妨げません.目立たない検証が開始され、メッセージが表示されます.
現時点では、次のデータ注釈があります。
[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());