从Javascript调用ASP.NET MVC 4控制器

时间:2013-07-24 09:36:54

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

我使用$ .ajax()从Javascript(在cshtml文件中)调用ASP.NET MVC 4控件方法,如下所示

        $.ajax({
            url: '@Url.Action("MyAction", "MyController")',
            type: 'GET',
            data: { 'id': "123"},
            contentType: "application/json; charset=utf-8",
            dataType: 'json',
            success: function (data) {
            }
        });

控制器操作方法是

    public JsonResult MyAction(string id)
    {
        // Do stuff
        return new JsonResult();
    }

被称为ok但导致GET 500(内部服务器错误)。

我并不关心返回的数据,我只想调用控制器方法来更新模型。

任何人都可以让我知道为什么我会获得500或另一种方法来做到这一点很棒。

1 个答案:

答案 0 :(得分:4)

出于安全原因,您无法在ajax请求中使用GET方法(请参阅JSON Hijacking)。

你必须这样做:

   return Json(data, JsonRequestBehavior.AllowGet)

或更好的关闭,将方法更改为发布

   type: 'POST',