我的控制器:
[HttpPost] public ActionResult AddUsers(int projectId, int[] useraccountIds) { ... }
我想通过AJAX将参数发布到控制器。传递int projectId并不是问题,但是我无法发布int[]。
int projectId
int[]
我的JavaScript代码:
function sendForm(projectId, target) { $.ajax({ traditional: true, url: target, type: "POST", data: { projectId: projectId, useraccountIds: new Array(1, 2, 3) }, success: ajaxOnSuccess, error: function (jqXHR, exception) { alert('Error message.'); } }); }
我尝试了一个测试阵列,但没有成功。:(我也尝试设置traditional: true,contentType: 'application/json; charset=utf-8'但也没有成功…
traditional: true
contentType: 'application/json; charset=utf-8'
该int[] useraccountIds贴到我的控制器总是空。
int[] useraccountIds
您可以定义一个视图模型:
public class AddUserViewModel { public int ProjectId { get; set; } public int[] userAccountIds { get; set; } }
然后调整您的控制器动作以将此视图模型作为参数:
[HttpPost] public ActionResult AddUsers(AddUserViewModel model) { ... }
最后调用它:
function sendForm(projectId, target) { $.ajax({ url: target, type: 'POST', contentType: 'application/json', data: JSON.stringify({ projectId: projectId, userAccountIds: [1, 2, 3] }), success: ajaxOnSuccess, error: function (jqXHR, exception) { alert('Error message.'); } }); }