为什么这个调用我的控制器不起作用?

时间:2014-08-01 12:13:31

标签: javascript jquery ajax json asp.net-mvc-4

我在MVC4项目中的视图中有以下JavaScript代码:

jQuery.ajax({
    url: "/Object/GetMyObjects/",
    data: {
        __RequestVerificationToken: jQuery("input[name='__RequestVerificationToken']").val(),
    },
    type: "POST",
    traditional: true
}).success(function (data) {
    sfds = JSON.parse(data);
});

以及ObjectController中的以下方法:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult GetMyObjects()
{
    var sfds= _db.SFDS.ToList();
    return View(sfds);
}

为什么在运行JavaScript时不会调用控制器?即使我删除ValidateAntiForgereToken它也不起作用。在我的控制台中,我看到返回的数据为空。

我今天很难在我的观点上获得一些JSON。

1 个答案:

答案 0 :(得分:3)

你没有回复JSon。您正在返回(或尝试返回)视图。在控制器中你需要这样的东西:

返回Json(sfds,JsonRequestBehavior.AllowGet);

然后,将其添加到.ajax()属性中:

dataType:" json",