Jquery 如何使用ajax调用将对象传递给控制器

Jquery 如何使用ajax调用将对象传递给控制器,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我想将一个对象传递给控制器并检索控制器中的值。 我的定义如下: Html代码: var positionarray = []; Javascript: $("#button").live('click',function(){ positionarray.push({ id: sessionStorage.getItem('id'), value: $("#input").val() }); }); // on save bu

我想将一个对象传递给控制器并检索控制器中的值。 我的定义如下:

Html代码:

 var positionarray = [];
Javascript:

 $("#button").live('click',function(){
     positionarray.push({
         id: sessionStorage.getItem('id'),
         value: $("#input").val() 
     });
 });

 // on save button click
 $.ajax({
       type: "GET",                                                 
       url:"/Bugs/Position",                                                 
       data: {
           array:positionarray      
       },
       cache: false,
       dataType: "json",
       contentType: "application/json; charset=utf-8",
       success: function (json) {

       }
 });
但我无法检索控制器中的值。它将变为空。

请尝试以下操作:

$.ajax({
       type: "GET",                                                 
       url:"/Bugs/Position",                                                 
       data: 'array='+positionarray      
       cache: false,
       dataType: "json",
       contentType: "application/json; charset=utf-8",
       success: function (json) {

       }
});
试试这个:

您的
ajax调用
必须在按钮单击功能中,然后才能工作

在代码中,
ajax调用在单击之前运行,因此它将通过null
到您的控制器

$("#button").live('click',function(){
     positionarray.push({
         id: sessionStorage.getItem('id'),
         value: $("#input").val() 
     });


    // on save button click
    // this code must run after `button click` and after pushing data in
    // positionarray variable
    $.ajax({
           type: "GET",                                                 
           url:"/Bugs/Position",                                                 
           data: {
               array:positionarray      
           },
           cache: false,
           dataType: "json",
           contentType: "application/json; charset=utf-8",
           success: function (json) {

           }
    });// here ajax function code ends

});// here button click function ends

尝试以下方法:-您正在传递一个对象数组,因此应该执行HTTPPost而不是HttpGet(这将适用于基本类型的数组,例如int、strgin等)通过查询字符串发送它(记住查询字符串的限制)。 用HTTPPost试试这个

 $.ajax({
       type: "POST",                     
       url:"Home/Position",                                                 
       data: JSON.stringify({
              array: positionarray
       }),
       cache: false,
       dataType: "json",
       contentType: "application/json; charset=utf-8",
       success: function (json) {

       }

[HTTPPost]
public void Position(YourClass[] array){...

您的操作看起来如何?在
/Bugs/Position
页面上打印您的
请求
,并检查您得到的信息,我认为是正确的。我可以传递给控制器,但控制器中得到的值是null@Naidu在传递数组时,可以使用Post而不是GETPass来传递它,将其作为字符串而不是对象。我有一种感觉,如果你的数组是JSON类型的,那么它的数据对象就不正常了。@Naidu检查一次,在你的
问题中
你的
ajax代码
不在
按钮点击功能中
。但是我写了一条评论,说ajax将在按钮点击中,它是真的,但评论不起作用(
代码很重要
),在您发表评论之前,您已经使用
>关闭了
按钮点击功能
。首先测试我的答案,并提供一些输出。这里有两个按钮。在第一个按钮中,我添加值,在第二个按钮中,我保存值。对不起,我不清楚。问题现在解决了。Json.stringify就可以了。谢谢