2011-11-01 11 views
5

MVC @Html.TextBoxFor(model => model.SomeNotNullableType)このヘルパーを使用している場合、データベースにnullable型がない場合、ビューはテキストボックスにデフォルト値で終わります。特に私の場合、フィールドは整数をとり、フィールドにはデフォルト値の0が入ります。MVC @ Html.TextBoxFor(model => model.SomeNotNullableType)デフォルト値を挿入

私はJavascriptまたはsetting the default value in htmlでエラー0を取り除くことができますが、これを行うにはもっと正しい方法があると思いました。私のモデルでは、デフォルトのビューをテキストボックスに入れないように指定することはできます(nullableに設定することはできません)。真のモデルアプローチに固執して、私はモデル/コントローラではなく、ビューで修正したいと思います。

答えて

3

null可能なintプロパティ(およびそのクラスの他のすべてのプロパティ)を持つモデルクラスのビューモデルを追加し、必要なフィールドにデータアノテーションを使用すると、目的の目的に役立ちます。

これで、コントローラのデータ永続性クラスにビューモデルをロールバックするだけで済みます。

+0

これはおそらく最良の方法ですが、null可能な型を持つすべてのモデルに対して「ヘルパー」ビューモデルを作成する必要はありません。 – Rastapopulous

+0

まあ、理論的には、最初は永続オブジェクトを渡すべきではないので、常に表示レイヤとデータレイヤの間に何らかの中間クラスが必要です。 –

+0

私は同じことに答えようとしていましたが、同僚の質問がありました。よくやった。 –

0

テキストボックスを作成するint型のカスタムエディタ(部分表示)を作成し、その値をデフォルト値に設定することができます。

関連する問題