首頁 >web前端 >js教程 >為什麼 ASP.NET MVC 中的 Ajax 呼叫在資料遺失時不會觸發警報?

為什麼 ASP.NET MVC 中的 Ajax 呼叫在資料遺失時不會觸發警報?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-18 22:22:03534瀏覽

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.使用Razor 語法產生URL:

在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.處理資料 POSTing:

如果需要將資料 POST 到伺服器,請新增資料屬性並在 Ajax 呼叫中提供適當的資料。

5.更新的 Ajax 呼叫:

以上是為什麼 ASP.NET MVC 中的 Ajax 呼叫在資料遺失時不會觸發警報?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn