0

AJAX 呼び出しを行うという点では、次のメソッドを使用しています。

    $.ajax({
             type: "POST",
             async: false,
             url: '@Url.Action("CheckPhone", "Progg")',
             data: { input: WebPhoneNum
             },
             success: function (iReturn) {
                 if (iReturn == 0) {
                     alert(Phone Number must be in format (XXX) XXX-XXXX. Please Re-Enter');
                     submitval = false;
                 }
             },
             error: function (xhr, status, error) {
                 var err = eval("(" + xhr.responseText + ")"); // Boil the ASP.NET AJAX error down to JSON.                    
                 alert('Call to CheckPhone failed with error:  ' + err.Message); // display the error raised by the server
             }
         });

コントローラーを呼び出して値を返す方法に注目してください。これを行うためのより良い方法があるかどうか疑問に思っていました。.NET MVC にはいくつかの ajax 呼び出しが組み込まれていることは知っていますが、以下で行っていることに合ったものを見つけることができませんでした。.NET MVC には、ハイパーリンクを使用した ajax 呼び出しビルドがあることは知っていますが、それは必要なものではありません。いくつかの値を返すコントローラーを呼び出すだけです。

ありがとう

4

2 に答える 2

0

ajaxで入力のフォーマットを検証しようとしていますか? そのような詳細を検証するためにデータ注釈について学ぶことをお勧めします (良い習慣のように送信フォームでサーバー上で再検証してください)

ここに便利なチュートリアルがあります http://www.asp.net/mvc/tutorials/older-versions/models-(data)/validation-with-the-data-annotation-validators-cs

于 2012-05-29T16:18:39.690 に答える
0

修正する必要があるのは 1 つだけです。

async: false

なる必要があります:

async: true

そうしないと、AJAX を実行していないからです。クライアントブラウザをフリーズするサーバーに同期リクエストを送信しています。

それ以外は、この AJAX リクエストでリモート検証を行っているようです。おそらく、[Remote]組み込みの属性を調べて、このコードをすべて記述する必要がないようにすることをお勧めします。必要なのは、この属性で検証する必要があるビュー モデル プロパティを装飾し、適切なスクリプトを含めることで目立たないクライアント側の検証を有効にすることだけです。

于 2012-05-29T15:19:58.763 に答える