[英]How to pass string array to controller using ajax?
// something defined deleteArr and pass values to it
var postData = { deleteArr: deleteArr };
if(deleteArr.length > 0)
{
$.ajax({
url: "@Url.Action("Delete", "ASZ01")",
type: "POST",
data: postData,
contentType: "application/json; charset=utf-8",
success: function (response) {
alert("success.");
},
error: function (response) {
alert(deleteArr[0]);
}
});
deleteArr.length = 0;
}
The above code is javascript. 上面的代码是javascript。 Until $.ajax begin I can confirm that values in array is correct in immediate window,but when it comes to error: I got "undefined".
在$ .ajax开始之前,我可以确认立即窗口中数组中的值正确,但是遇到错误时:我得到了“未定义”。 And the following is my function in controller
以下是我在控制器中的功能
public void Delete(List<string> deleteArr)
{
service.Delete(deleteArr);
}
The second question is that I set breakpoint on that function but it can't stop. 第二个问题是我在该函数上设置了断点,但是它无法停止。 I think maybe my ajax form is wrong?
我认为也许我的Ajax格式有误?
Stringify to JSON
, add the dataType: 'json'
and then pass and also correct your ""
字符串化为
JSON
,添加dataType: 'json'
,然后传递并更正您的""
var postData = JSON.stringify({ deleteArr: deleteArr });
if(deleteArr.length > 0)
{
$.ajax({
url: @Url.Action("Delete", "ASZ01"),
type: "POST",
data: postData,
dataType: 'json'
contentType: "application/json; charset=utf-8",
success: function (response) {
alert("success.");
},
error: function (response) {
alert(deleteArr[0]);
}
});
deleteArr.length = 0;
}
Small change to your postData
对您的
postData
少量更改
var postData = { deleteArr: JSON.stringify(deleteArr) };
Idea is to convert your array data into string format ie:JSON and posting to the server, The default Model binder of MVC framework will handle the part to convert them into List<string>
for you 想法是将数组数据转换为字符串格式(即:JSON)并发布到服务器,MVC框架的默认Model活页夹将为您处理将其转换为
List<string>
的部分
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.