2016-07-15 22 views
-1

我的模型:Ajax调用发送空值到控制器

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为空可以有人建议我在哪里出错?

回答

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; } 

} 
+0

对象的值,直到来了为空 –

+0

你可以在这里粘贴你的代码,这样我可以给你更好的解决方案 –

-1

其实我解决了这个问题,我必须设置

传统:真正的,

在我的Ajax调用