ホームページ  >  記事  >  ウェブフロントエンド  >  データが欠落している場合、ASP.NET MVC の Ajax 呼び出しでアラートがトリガーされないのはなぜですか?

データが欠落している場合、ASP.NET MVC の Ajax 呼び出しでアラートがトリガーされないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-18 22:22:03354ブラウズ

Why Doesn't an Ajax Call in ASP.NET MVC Trigger an Alert if Data is Missing?

ASP.NET MVC でコントローラーへの単純な Ajax 呼び出しを行う

ASP.NET MVC で Ajax 呼び出しを実行しようとすると、次のような課題に遭遇する可能性があります。以下のシナリオ:

問題

目的は、コントローラー メソッドから返されたデータを含むアラートを表示することです。ただし、アラートは発生しません。

コントローラー:

public class AjaxTestController : Controller
{
    public ActionResult FirstAjax()
    {
        return Json("chamara", JsonRequestBehavior.AllowGet);
    }   
}

ビュー:

<code class="html"><script type="text/javascript">
    $(document).ready(function () {
        var serviceURL = '/AjaxTest/FirstAjax';

        $.ajax({
            type: "POST",
            url: serviceURL,
            data: param = "",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: successFunc,
            error: errorFunc
        });

        function successFunc(data, status) {     
            alert(data);
        }

        function errorFunc() {
            alert('error');
        }
    });
</script></code>

観察:

当初、Ajax 呼び出しはアラートのトリガーに失敗しました。無関係なパラメータを追加し、コントローラでメソッドを変更した後、アラートは正しく機能し始めました。ただし、この動作の理由は不明のままです。

解決策

1.不要なデータ属性の削除:

サーバーにデータが送信されないため、データ属性を Ajax 呼び出しから削除する必要があります。

2. URL に Razor 構文を使用する:

Ajax メソッドでは、静的文字列の代わりに Razor 構文を使用して URL を生成します:

<code class="js">$.ajax({
    url: '@Url.Action("FirstAjax", "AjaxTest")',
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: successFunc,
    error: errorFunc
});</code>

3.成功関数にメッセージ表示を追加:

成功関数で、アラートに表示したいメッセージを追加します。

4.データ POST の処理:

サーバーにデータを POST する必要がある場合は、データ属性を追加し、Ajax 呼び出しで適切なデータを指定します。

5.更新された Ajax 呼び出し:

<code class="js">$.ajax({
    type: "POST",
    url: '@Url.Action("FirstAjax", "AjaxTest")',
    contentType: "application/json; charset=utf-8",
    data: { a: "testing" },
    dataType: "json",
    success: function() { alert('Success'); },
    error: errorFunc
});</code>

以上がデータが欠落している場合、ASP.NET MVC の Ajax 呼び出しでアラートがトリガーされないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。