0

私は、ビットワイヤードの条件付き検証サーバー側とクライアント側を達成しなければならない状況にあります。以下のような話

a)ドロップダウンが1つあるとします

b) 2 つのチェックボックス

c) 1 つのラジオ ボタン リスト

d) 1 つのチェックボックス リスト

e)いくつかのテキストボックスと

f) 保存ボタン

1) 私の要件は、ユーザーがドロップダウンから 1 つのデータを選択してフォームを送信すると、2 つのチェックボックスを除くすべてのコントロールに対して検証メッセージが表示されることです。

2) ユーザーがドロップダウンから 1 つのデータを選択し、2 つのチェックボックスのいずれかを選択してフォームを送信すると、チェックボックス リストを除くすべてのコントロールに対して検証メッセージが表示されます。

要件が少し配線されていることは知っていますが、同様のことをしなければなりません。カスタム検証を使用してmvcで解決する方法などの提案をお願いします。

ValidationAttribute and IClientValidatable interfaceクライアント側とサーバー側でこの検証を実現するために使用する方法。

ありがとう

4

1 に答える 1

1

目立たない検証を使用していると仮定すると、別のアプローチを使用できます。特定のフィールドの検証は、クライアント/サーバーの両方で有効または無効にできます。

ActionMethod のサーバー側では、次のようなことができます。

' Check if any of the two CheckBoxes are not checked, then
  ModelState.Remove("CheckBox1")
  ModelState.Remove("CheckBox2")

' Else
  ModelState.Remove("CheckBoxList")

クライアント側の控えめな検証を無効にするには ( https://stackoverflow.com/a/12179373/1361888を参照してください)、

 $(function() {
     var settngs = $.data($('form')[0], 'validator').settings;
     settngs.ignore = ".ignore";
 });

したがって、基本的に、クライアント側とサーバー側の両方でフィールドの検証を有効または無効にすることができます。これは単純なアプローチです。

于 2016-03-24T10:43:37.430 に答える