如何在C#中将ajax调用中的int数组作为参数从JS发送到控制器操作
本文关键字:JS 参数 操作 控制器 数组 中将 ajax 调用 int | 更新日期: 2023-09-27 18:00:00
我有一个对象selectedDocTypes作为[23,45,78]
我需要将它作为参数传递给我的控制器操作。但该值没有被分配给参数,它是null。
这是代码:
JS:
function addNewIssue(accountSID,selectedDocTypes, callback) {
var Data = { accountSID: accountSID, selectedDocTypes: selectedDocTypes };
$.ajax(landforceAPIURL + '/AddNewIssue', {
cache: false,
data: Data,
success: function (data) {
if (callback)
callback(data)
},
error: dataContext.queryFailed
});
};
C#:
[HttpGet, Route("AddNewIssue")]
public string AddNewIssue(string accountSID,int[] selectedDocTypes)
{...}
假设您已在JavaScript中将selectedDocTypes
正确定义为数组,则必须在ajax调用中指定contentType
发送到服务器,如:
$.ajax(landforceAPIURL + '/AddNewIssue', {
cache: false,
data: Data,
contentType: "application/json; charset=utf-8", //content type send to sever
我赞同@haz的评论。
然而,对于这个问题,这个答案似乎涵盖了它:https://stackoverflow.com/a/13255459/4349196.
另一种可能的解决方案是使用自定义JavaScript来构建URL,如:
...accountSID=jSmith&selectedDocTypes=23&selectedDocTypes=45&selectedDocTypes=78
有关示例,请参见此处:http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/.