データベースに、深夜0時を格納する倍精度浮動小数点フィールドがあります。私は、この番号をHH:MM:SS.ffffffの形式に変換できるC#のコードを用意しています。ここで、fは秒数です。私はまた、これを二重に解析するコードを持っています。ASP.NET MVCでのカスタムバインディング - 単一のフィールドでのバインディング動作の変更
私がしたいのは、ASP.NET MVCのストックバインダーオブジェクトを変更して、通常、ダブルタイプから使用するものの代わりにMY解析とToString()メソッドを使用するようにします。完全なカスタムバインダー。
C#でいくつかの拡張メソッドを書くことができますか、バインドオブジェクトに私の解析とToString()メソッドを知らせるために適切な属性をいくつか使用できますか?
ここでもう少し説明します。
Linq to SQLクラスのようなモデルをビューに提供すると、MVCは私のビュー内のコントロールに同じ名前を使用していれば、フィールドを基になるデータモデルに自動的にワイヤリングできます私のデータモデル。 MVCビューをコントローラメソッドにポストした場合、ControllerクラスのUpdateModelメソッドを呼び出すことで、ユーザーの変更をデータベースに書き戻すことができます。 FormCollectionからLinqへの特定のフィールドをSQLデータクラスに配線することについては心配する必要はありません。
私はバインダーが通常の数値doubleでこの魔法を働かせるためには、おそらくdouble.parseを呼び出してユーザーからの入力を解析し、これをLinq to SQLに渡す必要があると仮定しますクラスを作成し、データベースを更新できるようにします。
私のモデルのフィールドの1つに対して、ダブルデータ型に付属するカスタムパーサを使用する必要があります。私は残りの分野の責任を引き受ける必要はありません。
カスタムバインダーの作成に反対するのはなぜですか?このロジックのほとんどをクラスにカプセル化することができ、モデルバインダーは非常に簡単になります。 –
これを行うには、他のフィールドごとにバインディングを引き継がなければなりませんか? –
いいえ、そのタイプのアクションパラメータへのバインド用です。私はいくつかのコードを投稿しました。幸運 –