1

注意してください:同様の質問への回答へのリンクを使用して、自分の質問に回答しました。許可されたら、その答えを受け入れます(その間に誰かがより良い答えを思いつかない限り)。

データベース列が定義されていますNVARCHAR(1000) NOT NULL DEFAULT(N'')。つまり、デフォルト値が空白のnull不可のテキスト列です。

Linq-to-SQL クラス デザイナーによって生成されたモデル クラスがあります。これは、プロパティをnull非許容として正しく識別します。

私はTextAreaForその物件について私の見解を持っています。コントローラーで使用UpdateModelして、フォームから値を取得し、モデル オブジェクトにデータを入力しています。

Web ページを表示してテキスト領域を空白のままにUpdateModelすると、プロパティをNULL空の文字列ではなく に設定するように要求されます。( を呼び出す前にコードで値を空白に設定してUpdateModelも、 で上書きされますNULL)。もちろん、これにより、その後のデータベースの更新が失敗します。

を呼び出した後にそのようなすべてのプロパティをチェックできましたが、それはばかげているようです-確かにもっと良い方法があるに違いありませんか?NULLUpdateModel

このような単純なシナリオにカスタム モデル バインダーが必要だなんて言わないでください...!

4

2 に答える 2

2

重複するか、次の行にある可能性があります。

MVC バインディング フォーム データの問題

カスタムモデルバインダーが必要になるのではないかと心配しています. ;)

于 2010-04-06T21:20:25.677 に答える
0

特定のプロパティの on プロパティ変更ハンドラーを実装する、エンティティの部分クラス実装を使用したい場合があります。プロパティが NULL に変更されたことを検出したら、単純に に変更しますstring.Empty。そうすれば、プロパティに NULL が割り当てられるたびに、空の文字列にリセットされます。

于 2010-04-06T21:40:12.410 に答える