嘗試在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>
在成功函數中,新增要在警報中顯示的訊息。
4.處理資料 POSTing:如果需要將資料 POST 到伺服器,請新增資料屬性並在 Ajax 呼叫中提供適當的資料。
5.更新的 Ajax 呼叫:以上是為什麼 ASP.NET MVC 中的 Ajax 呼叫在資料遺失時不會觸發警報?的詳細內容。更多資訊請關注PHP中文網其他相關文章!