首页  >  文章  >  web前端  >  为什么 ASP.NET MVC 中的 Ajax 调用在数据丢失时不触发警报?

为什么 ASP.NET MVC 中的 Ajax 调用在数据丢失时不触发警报?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-18 22:22:03471浏览

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 调用:

<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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn