コントローラーのモデル パラメーターにフォームをバインドしようとしています。モデルには DateTime フィールドが含まれており、フォームの送信時にそれをバインドしたいと考えています。フォーム フィールドは、日付が非標準形式で入力されることを想定しています (これはさまざまな理由で変更できません)。
コントローラーのアクションは次のとおりです。
public ActionResult Registration_Post(RegistrationDetails model)
RegistrationDetails クラスで (DateTime) DateOfBirth プロパティをカスタム バインドするだけで済みます。残りのすべてのプロパティは、デフォルトのバインディングで機能します。
アプリ全体の DateTime バインディングをオーバーライドしたくありません - この単一のアクション (または、より簡単な場合はコントローラー) のためだけに。
どうすればこれを行うことができますか?次のように、アクションで ModelBinder 属性を使用してみました。
public ActionResult Registration_Post([ModelBinder(typeof(CustomDateTimeBinder)]RegistrationDetails model)
ただし、RegistrationDetails クラス全体のカスタム バインダーを作成する必要があるようです。これはやり過ぎのようです。
また、クラスが他の場所で使用されているため、モデル プロパティにカスタム フォーマットを設定したくないため、クラスを汚染しています。
MVC4を使用しています。
誰かがこれを処理する最良の方法を教えてもらえますか?