2015-10-15 31 views
2

Salaamun AlekumReceving在控制器動作空值

我通過Ajax請求獲得在控制器動作null

var ProjectPermission = [{ 
    "CreatedBy": "Akshay" 
},{ 
    "CreatedBy": "Kumar" 
},{ 
    "CreatedBy": "ETC" 
}] 

$.ajax({ 
    url: '/api/Projects/AssignProjectPermissions', 
    type: 'POST', 
    contentType: 'application/json', 
    dataType: 'json', 
    data: JSON.stringify({ 
     ProjectPermission: ProjectPermission 
    }), 
    success: function (data) { 
     alert(data); 
    }, 
    // processData: false //Doesn't help 
}); 

我的C#控制器:

[System.Web.Http.HttpPost, System.Web.Http.HttpGet] 
public string AssignProjectPermissions(ProjectPermission[] ProjectPermission) 
{ 

我得到null in ProjectPermission。我已經嘗試了其他答案,但他們都沒有爲我工作。這些都是我查了帖子:

謝謝

+0

你有沒有試過數據:JSON.stringify(ProjectPermission)? – Jay

回答

4

你不應該使用同一方法GET和POST首先,只需使用POST在這個案例。除了你不需要屬性名稱。你正在把你的數組放入一個對象中。你的方法期待一個數組。

var ProjectPermission = [{ CreatedBy: "Akshay" }, 
       { CreatedBy: "Kumar" }, 
       { CreatedBy: "ETC" }] 
    $.ajax({ 
     url: '/api/Projects/AssignProjectPermissions' 
    , type: 'POST' 
    , contentType: 'application/json' 
    , dataType: 'json' 
    , data: JSON.stringify(ProjectPermission) //<------------issue here 
    , success: function (data) 
     { alert(data); } 
     //, processData: false 
    });