0

開始フォームの外にある MVC ビューのフィールドに対して、この検証メッセージがあります。しかし、それは表示されていません。

@Html.ValidationMessageFor(m => m.OldPassword)

これを達成する方法はありますか?これを検証するためだけにJqueryまたはJavascript関数を使用したくないので。

4

3 に答える 3

2
  1. Div タグを使用してフォーム内に検証メッセージを保持します。
  2. Div表示をなしにします。
  3. ボタンのクリック時に、フォームの IsValid プロパティを確認します
  4. 有効な場合は、Div の HTML() をコピーして、フォームの外にある別の div に配置します。

それはきれいな解決策ではありませんが、トリックはうまくいきます

于 2013-12-31T06:37:57.317 に答える
1

ValidationMessageForフィールド/コントロールがそのコントローラーのフォーム ポスト アクション内にある場合にのみ機能します。JavaScript / Ajax / ViewBagそれ以外の場合は、エラーを取得するなどの別の方法を実行する必要があります。

于 2013-12-31T06:30:27.783 に答える
0

@Html.ValidationMessageFor(m => m.Property)がフォーム内にある場合にのみ機能します。ただし、要素が変更された場合、つまりフォームを再送信せずにエラーメッセージが変更された場合に、外側の div も更新する回避策を見つけることができました。

  1. <div id="outside-form"></div>フォームの外側にa を配置します。
  2. すべてのステートメント<div id="inside-form" style="display:none;"></div>を含むフォーム内にa を配置します。@Html.ValidationMessageFor(m => m.Property)
  3. これは厄介な部分です。jquery.validate.js で次を見つけます。

form: function() {.....}関数が add を返す直前$("#outside-form").html($("#inside-form").html());。これにより、フォーム全体が検証されるたびに outside-div が更新されます。

element: function( element ) {.....}関数が add を返す直前$("#outside-form").html($("#inside-form").html());。これにより、各フォーム要素が検証されるたびに outside-div が更新されます。

それでおしまい!form.js ファイル自体を変更せずにandオブジェクトを拡張する方法があるかどうか疑問に思っていelementました..これについての手がかりはありますか?

于 2014-10-10T16:33:00.837 に答える