2014-10-01 49 views
0

这是我的问题: 我有一个JS数组,我想将它传递给一个动作,然后呈现该动作的视图。 这是我的阵列和我填满它使用jQuery像这样:返回一个Javascript数组到行动

var factorlist = []; 
    factorlist.push({ ID: data.ID, Name: data.Name, number: data.number, SingelPrice: data.SingelPrice, TotalPrice: data.TotalPrice }) 
    (data come from an AJAX Call) 

然后我把一个隐藏的输入元素在我的网页把我的数组中,并与一个提交发送。 这里是隐藏的输入和提交按钮:

<input type="submit" id="input" name="input" />  
    <input type="hidden" id="list" name="list"/> 

这是我如何把它:

$('form').submit(function (event) { 
     $('#list').val(JSON.stringify(factorlist)); 

    }); 

,这是我送数组的操作:

 public ActionResult PrePayment(List<Order> list) 
    {    
     return View(list); 
    } 

和我的订单类别:

 public class Order 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public int number { get; set; } 
    public float SingelPrice { get; set; } 
    public float TotalPrice { get; set; } 
} 

**现在的事情是我得到和行动中的空列表不是空的...有什么问题,是否有任何其他方式来做到这一点? **

+0

如果您要提交表单,为什么会涉及ajax? – Johan 2014-10-01 12:43:15

+0

我在哪里使用ajax ??! – Amirmasoud 2014-10-01 12:47:29

+0

噢你没关系 – Johan 2014-10-01 12:48:07

回答

0

如果我理解你的权利,你要张贴从形式到控制器动作的JS数组,所以在此基础上article有一个解决方案的例子:

$('form').submit(function (event) { 
    $(factorlist).each(function (i, el) { 
     $('form').append($('<input />', { 
      type: 'hidden', 
      name: 'list[' + i + '].ID', 
      value: el.ID 
     })); 

     // and so on for each your of objects property 

    }); 

}); 

更正确的方法是使用ajax并在成功回调时重定向。

+0

感谢您的回复,但Luizgrs的回答非常完美... – Amirmasoud 2014-10-01 12:56:55

+0

它只是一个客户端解决方案 – aleha 2014-10-01 13:05:18