1

私は私のコードでは、この検証の概要を持っている:jQueryの邪魔にならない検証用のAPIはありますか?

@Html.ValidationSummary(false, "Fix Error", new { id = "valSumId" }) 

ので、私は、実行時に検証エラーを追加することができますAPIはありますか?以下のコードは動作しますが、脆弱であると感じます。ASP.NET MVCチームがul liタグを使用して次のASP.NET MVCリリースでエラーを表示しないようにすることはありません。

$('input[type=submit]').click(function (e) { 
    e.preventDefault(); 
    if ($('form').valid()) { 
     /* ajax submit here */ 

     if (anErrorOccured) { 
      $('#valSumId').removeClass().addClass('validation-summary-errors'); 
      errorList = $('#valSumId > ul'); 

        // the message is variable, coming from JSON, and can be a list 
      errorList.append($('<li />').text('Your ordered quantity is above the stock level')); 
     } 
    } 
}); 
+0

説明してください(私のために);)あなたが望むもの...検証エラーメッセージの相違した出力または...? – dknaack

+0

サーバーからの出力が異なる、レコードの保存に失敗する可能性のあるもの(ビジネスロジックなど)またはそれ以降(例:同時更新、重複エラーなどの例外) –

答えて

1

これは、(下部にjQueryのコードを参照してください)私が達成したかったものです。今のところhttp://www.ienablemuch.com/2011/07/ivalidatableobject-client-side.html

、私はまだそれらをハードコーディング、クライアント側の検証にエラーを挿入するためのAPIを知らないながら、 ul liはうまくいくでしょう。私はすでに達成したいものの周りに素敵なラッパーを作っていました。将来的には、jQuery検証APIが発見されました。

0

いいえ、ありません。あなたが概説するアプローチは、クライアント側に属しません。 「注文数量が在庫レベルを上回っています」というメッセージは、実際にサーバーから取得する必要があります。リモート検証またはサーバー側検証のような検証を設定することができます。どちらも手動で追加する必要はなく、検証サマリーに組み込まれます。

+0

実際にクライアントに属していないことはわかっています私は、私の質問では、Ajax経由でレコードを保存した後、私のコードはMVCのJsonResultからJSONを受け取ると説明しました。 JSONには、サーバー側のビジネスロジックメッセージ、同時更新のように捕捉された例外、モデルに入れられなかった制約、サーバーディスクいっぱいなどが含まれる可能性があります。 –

+0

リモート属性によるリモート検証が好きですが、モデルレベルのバリデーションをキャッチし、dbレベルの制約(保存後に起こるもの) –

+0

それは理にかなっています。私が考えていたのは、JSONを返す代わりに、フォームでビューをレンダリングするだけで、モデルの状態のエラーに値が入るということでした。 – Milimetric

関連する問題