ASP.NET MVC 4区域的Ajax请求问题

时间:2013-12-06 21:52:32

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

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

区/管理/控制器/ BannersController

    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

2 个答案:

答案 0 :(得分: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",
               ...

答案 1 :(得分:0)

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