将JSON发送到服务器(ASP.NET MVC4)

时间:2014-08-01 12:53:43

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

我有JSON:

[{"id":1,"user_id":"8","project_id":"1","mode":3},{"id":1,"user_id":"8","project_id":"2","mode":1},{"id":1,"user_id":"8","project_id":"3","mode":1}] 

所以,我尝试将它发送到服务器:

$.ajax({
            url : "User/Permissions_Set",
            dataType: 'json',
            type: 'POST',
            data: JSON.stringify(permissions_JSON),
            success: function (data) {
                console.log(data);
            }
        });

在Serverside上:

[HttpPost]
        public void Permissions_Set(List<Permission> permissions_JSON)
        {

            foreach (var permission_from_view in permissions_JSON)
            {
                var permission_from_db = db.Permissions.Where(prm => prm.project_id == permission_from_view.project_id && prm.user_id == permission_from_view.user_id).FirstOrDefault();
                permission_from_db.mode = permission_from_view.mode;
            }

            db.SaveChanges();

        }

但我附近有错误&#34; foreach&#34;: 对象引用未设置为对象的实例。

我认为列出权限_JSON的问题, 但我的模特&#34;许可&#34;有属性&#34; id&#34;,&#34; user_id&#34;,&#34; project_id&#34;,&#34; mode&#34;

请告知我如何在服务器端从客户端接收JSON。

更新

现在我已经改变了jquery,它返回了成功的结果。 但无论如何我无法使用permissions_JSON。 那么,是否可以使用permissions_JSON而不是&#34; List&#34;,但是像JSON一样。 可能,你,请任何人建议如何收到它,并在C#中使用它...

提前致谢。

1 个答案:

答案 0 :(得分:1)

编辑:尝试这样做:

var bob = {permissions_JSON:[{ id: 1, user_id: 8, project_id: 1, mode: 3}]};
request.permissions_JSON = bob;

$.ajax({
    url: "Home/Permissions_Set",
    dataType: 'json',
    type: 'POST',
    contentType: 'application/json;',
    data: JSON.stringify(bob),
    success: function (data) {
        console.log(data);
    }
});

创建一个新对象。将集合附加到该对象。确保对象上的集合与参数同名。