尝试在 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 调用:
<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中文网其他相关文章!