2014-10-01 71 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