3

AJAX クエリから戻るときに、サーバー側の検証でエラーが追加されたかどうかを判断する方法はありますか?

私が試してみました

if ($('#MyForm').valid() == true)
...

関数内OnSuccessですが、サーバー側の検証が失敗したかどうかに関係なく、常にtrueのようです。更新された HTML が生成された場合、期待どおりにエラーが発生するため、検証が正しく機能していることがわかります。

valid()メソッドがクライアント側の検証を再実行しているだけだと思います。

4

2 に答える 2

2

サーバーに対して ajax 呼び出しを実行する場合は、単純に Json リターンを構成できます。

通常、すべてが問題ないかどうかを知らせるプロパティ、データを含むクラス、および最終的なエラー メッセージを含むクラスで応答をラップします。

public class MyJsonReposnse
{
   public bool Valid {get;set;}
   public string Error {get;set;}
   public IList<MyClass> Data {get;set;}
}

次に、コントローラーからjsonを返し、onSuccessjQuery呼び出しから、値を確認してValidそれに応じて行動します

于 2012-04-26T12:39:22.417 に答える
1

このチュートリアルのテクニックをチェックしてください。検証は、データ注釈を使用してサーバー側で行われます。カスタム フィルターを使用すると、検証エラーがクライアントに送信され、クライアント側でrevalidate()は控えめな js から呼び出します。

$.validator.unobtrusive.revalidate(form, validationResult);
于 2012-04-26T12:48:49.900 に答える