通过AJAX在控制器动作中接收空值

本文关键字:空值 AJAX 控制器 通过 | 更新日期: 2023-09-27 18:18:01

Salaamun Alekum

我得到null在控制器动作通过AJAX请求:

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
});

My c# controller:

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

我在ProjectPermission中得到null。我已经尝试了其他的答案,但都不适合我。这些是我查看过的帖子:

    如何获得Ajax张贴数组在我的c#控制器?
  • Ajax post到ASP.net MVC控制器-对象属性为空

谢谢

通过AJAX在控制器动作中接收空值

您不应该首先在同一个方法上使用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 
    });