c# - 通过 AJAX 在 Controller 操作中接收空值

标签 c# jquery asp.net ajax asp.net-mvc

萨拉蒙·阿勒库姆

我通过 AJAX 请求在 Controller 操作中获取 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# Controller :

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

我在 ProjectPermission 中得到 null。我已经尝试过其他答案,但没有一个对我有用。这些是我检查过的帖子:

谢谢

最佳答案

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

关于c# - 通过 AJAX 在 Controller 操作中接收空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33148829/

相关文章:

c# - 从 EFCore 延迟加载上下文中删除导航集合实体 - 导航集合未立即更新

c# - 通用 SqlDataReader 到对象映射器

jquery - 使用 jQuery,当我单击“显示”按钮时,我想一次显示五个

javascript - 在 asp.net c# 中使用 jquery 进行 ckeditor 验证

c# - 删除字符串中特定短语之前和特定短语之后的所有内容

c# - 在 VS2010 的 asp.net mvc 4 中使用 jqueryUI 打开模式窗口

jquery、图像、选择器

javascript - 带有选择类的语义 UI 多级下拉列表不会展开

jquery - 如何覆盖页面某些部分的默认 Bootstrap 样式

c# - 母版页通过 Javascript 对内容页的访问控制