【问题标题】:Ajax Request issue with ASP.NET MVC 4 AreaASP.NET MVC 4 区域的 Ajax 请求问题
【发布时间】:2016-12-10 18:03:26
【问题描述】:

今天我发现了一些奇怪的东西,我有没有这样的 ajax 的常规 asp.net mvc 4 项目(只是发布,获取)。所以今天我需要ajax请求,我在控制器中用jquery做了一个ajax操作,但没有成功。这是我的代码

区域/管理员/控制器/横幅控制器

    public JsonResult SaveOrder(string model)
    {
        bool result = false;

        if (!string.IsNullOrEmpty(model))
        {
            var list = Newtonsoft.Json.JsonConvert.DeserializeObject<List<int>>(model);

            result = repository.SaveOrder(list);
        }

        return Json(result, JsonRequestBehavior.AllowGet);
    }

查看面(也在区域内)

        $(document).ready(function () {
        $("#saveOrder").click(function () {

            var data = JSON.stringify($("#list_banners").nestable('serialize'));

            $.ajax({
                url: '@Url.Action("SaveOrder", "Banners", new { area = "Admin" })',
                data: { model: data },
                success: function (result) {

                    if (result) {
                        toastr.success('Kaydedildi.');
                    }
                    else {
                        toastr.error('kaydedilemedi.');
                    }

                },
                error: function (e) {
                    console.log(e);
                }
            });

        });
    });

我已经尝试了我所知道的一切,即 $.post、$.get、ajax 选项、尝试来自区域外的请求等。只是请求无法执行

这是错误, http://prntscr.com/297nye

错误对象 http://prntscr.com/297o3x

【问题讨论】:

  • 尝试告诉 ajax 期望什么数据类型,datatype: 'json/application', type: 'GET',
  • 相同的结果,没有任何改变
  • @user2107255 您是否尝试先使用浏览器直接点击该网址,至少要确保您的路线清晰......而且您的操作是 GET 操作对吗?
  • 尝试发送一个简单的字符串,意思是data: { model: "Hello World" },,看看它是否正确调用了控制器。我感觉问题在于data 的字符串化(?)
  • 我个人更幸运。使用@Jose 推荐的内容,但将 post 改为并将 [HttpPost] 添加到您的控制器

标签: asp.net-mvc asp.net-mvc-4 jquery asp.net-mvc-areas


【解决方案1】:

尝试通过指定您想要发布到服务器的数据格式 (json),并更改您在 JSON 中传递数据对象的方式,如下所示:

 var data = $("#list_banners").nestable('serialize');

     $.ajax({
              url: '@Url.Action("SaveOrder", "Banners", new { area = "Admin"    })',
              data: JSON.stringify({ model: data }),
              dataType: 'json',
              contentType: "application/json",
               ...

【讨论】:

    【解决方案2】:

    我有同样的问题,但花了太多时间后,得到了解决方案。如果您的请求将发送给您指定的控制器,请检查您的响应。你的回复一定有问题。在我的情况下,响应没有正确转换为 JSON,然后我尝试使用 select 函数从控制器传递响应对象的一些值,并得到了我需要的。

    【讨论】:

      猜你喜欢
      • 2021-10-14
      • 1970-01-01
      • 2012-12-07
      • 2011-08-23
      • 2023-04-04
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多