2009-06-02 6 views
0

私はMVCでC#を使っています。ModelState.IsValid invisible controls

2つのラジオボタンがあります。最初のラジオボタンを選択すると、日付値を入力できるテキストボックスが表示されます。 <%= Html.TextBox( "ReceivedDate")%>

2番目のラジオボタンを選択すると、テキストボックスが非表示になります。

最初にラジオボタンを選択して日付を入力し、次へをクリックして次のページに移動し、再度このページに戻って2番目のラジオボタンをクリックして次へをクリックして続行し、ページを開き、オプションを変更せずに続行をクリックすると、移動が許可されず、エラーが表示されます。

 A value is required. 

これは、非表示のコントロールを検証するModelStateも意味します。

それを

+0

モデルの検証と必須フィールドの設定にはどのようなものを使用していますか? – CoderDennis

+0

私はフォームをポストしている間にModelState.IsValidをチェックしています。 ModelState.IsValidはfalseで、エラーが発生したビューに戻ります。 – Prasad

答えて

0

代わりのDOMから要素を削除し、最初の項目が再び選択された場合に、それを再挿入、それを隠すことを制御する方法を提案してください。別の方法は、最初の項目が選択されていないときに、入力コントロールの名前を他のもの(モデルデータに存在しないキー)に変更することです。

非表示の入力タイプを検証することは良いことですが、私はよく複雑なコントロール(ツリービューとチェックボックスなど)のデータを同期させるためにそれらを使用します。非表示のcssスタイルの入力タイプでも、それが所属するフォームと共に送信しないようにしません。

+0

実際に操作されたコントロールの名前を変更します。ありがとう。 – Prasad