アンドレイ、
表示形式は、ほとんどの場合、ビューで使用する Html ヘルパーを使用するためのものです。
必要なのは (@CodeCaster で正しく言及されているように) DateTime タイプのカスタム モデル バインダーです。カスタム モデル バインダーは型ごとに登録できるため、MVC ランタイムが同じ型のコントローラー アクションで引数を検出するたびに、カスタム モデル バインダーを呼び出して、ポストされた値を正しく解釈し、型を作成します。
以下は、DateTime のサンプル カスタム モデル バインダー タイプです。
public class DateTimeModelBinder : DefaultModelBinder
{
private string _customFormat;
public DateTimeModelBinder(string customFormat)
{
_customFormat = customFormat;
}
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
// use correct fromatting to format the value
return DateTime.ParseExact(value.AttemptedValue, _customFormat, CultureInfo.InvariantCulture);
}
}
ここで、DateTime に新しいモデル バインダーを使用するように MVC に指示する必要があります。これを行うには、新しいモデル バインダーを Application_Start に登録します。
protected void Application_Start()
{
//tell MVC all about your new custom model binder
var binder = new DateTimeModelBinder("dd.MM.yyyy");
ModelBinders.Binders.Add(typeof(DateTime), binder);
ModelBinders.Binders.Add(typeof(DateTime?), binder);
}
クレジットは、datetime のカスタム モデル バインディングに関する優れた記事 ( http://blog.greatrexpectations.com/2013/01/10/custom-date-formats-and-the-mvc-model-binder/ )に当てはまります。
これが正しい部分から始めるのに役立つことを願っています