我的模特:
public class Hello
{
public List<string> name;
public List<string> phone;
public List<string> contact;
}
我的控制器代码是
public ActionResult Home(Hello obj) // obj is coming out to be null
{
}
我的脚本是
var names =[];
var phones =[];
var contacts = [];
// some code to fill the arrays
var obj = [{
name: names,
phone: phones,
contact: contacts,
}];
debugger;
$.ajax({
cache: false,
url: 'Home',
data: { obj:obj },
success: function (data) {
var response = JSON.parse(data);
window.location = 'Download?fileGuid=' + response.FileGuid
+ '&filename=' + response.FileName;
}
})
我可以在调试器中看到数据存储在数组中,但是当我向控制器发送数据时,obj为null,有人可以建议我哪里出错吗?
答案 0 :(得分:1)
你的代码背后有对象,所以不要传递Hello对象的数组。
并且还使用POST请求,因为GET请求没有消息体。
请使用以下
var obj = {
name: ['1', '2', '3'],
phone: ['234324', '34343243', '3434234234'],
contact: ['Test1', 'Test2', 'Test3']
};
debugger;
$.ajax({
type:'POST',
contentType: "application/json; charset=utf-8",
dataType: "json",
url: 'Home',
data:JSON.stringify({ obj: obj }),
success: function (data) {
var response = JSON.parse(data);
// window.location = 'Download?fileGuid=' + response.FileGuid
+ '&filename=' + response.FileName;
}
})
public class Hello
{
public List<string> name { get; set; }
public List<string> phone { get; set; }
public List<string> contact { get; set; }
}
答案 1 :(得分:-1)
其实我解决了这个问题,我不得不设置
传统:真,
在我的ajax电话中