2017-03-24 16 views
0

は、私は、ユーザーの検証エラーメッセージを表示する2つの方法があります。クライアント側では、if (response.Status == undefined) $("#formWrapper).html(response)のように、エラーメッセージを含む新しいフォームに置き換えられます。Ajaxフォーム検証応答

2)すべてがOKなら、return Json(new { Status = false, Errors = errorList })のエラーがあり、クライアント側にerrorListを送り、メッセージを要素に追加します。

どちらを選択すればよいですか?

注:エラーがある場合はクライアントサイドの検証とリクエストが全く提出されないことは知っていますが、バックエンドでチェックする必要がありクライアント側の検証に入れる必要のないものがいくつかあります。コントローラからの検証エラーに関する情報を返します。

+0

1日中2番目を選択:)真と偽の代わりに、1と-1のような値を設定することもできます。 – dpaul1994

+1

オプション2はパフォーマンスが向上し、 '$ .validator'を再作成する必要はありません-parsed –

答えて

1

私は最初のものをお勧めします。ビュー、データ、またはそれを変更する代わりに完全に置き換えるときに、より多くのバグを避ける傾向があります。

2番目のビューは基本的にビューの状態を変更しています。状態の変更は、プログラミングにおけるバグの最大の原因の1つです。あなたは成功を

Json(new { Status = true }) 

とするとき、私はいつも下のそのコードを実行するAJAXエラーコールバックにそれを処理するためにいくつかの種類のキャッチ任意のエラー設定Response.StatusCodeを返すとき

0

私の提案は異なっています。

Response.StatusCode = (int)HttpStatusCode.BadRequest; 
return Json(result.ErrorMessage); 

このアプローチでは、懸念が分離されます。

1

クライアント側でエラーの詳細情報を表示することができます(その他の場合は表示するだけです)、完全なエラーメッセージが表示されるため、オプション2を使用します。あなたが間違って入力したような、またはエラーが発生したデータ、またはあなたがエラーリストに言及したようにサーバー側からのカスタムエラーが発生しました。