2012-12-24 88 views
3

在我的頁面中,我有一些輸入用於用戶輸入值,然後我將獲取所有值並將它們發送到服務器。現在,我可以得到價值,我展示他們就像如下:將JS數組傳遞給MVC控制器動作

Cylinder: 0.00 Sphere: 0.00 Quantity:1 
Cylinder: -0.25 Sphere: 0.00 Quantity:2 
Cylinder: -0.50 Sphere: 0.00 Quantity:33 
Cylinder: -0.75 Sphere: 0.00 Quantity:2 
Cylinder: -1.00 Sphere: 0.00 Quantity:2 
Cylinder: -1.25 Sphere: 0.00 Quantity:33 
Cylinder: -1.50 Sphere: 0.00 Quantity:4 
Cylinder: -1.75 Sphere: 0.00 Quantity:5 
Cylinder: -2.00 Sphere: 0.00 Quantity:4 

但我不知道如何將它們發送到動作保存。我正在使用mvc。

在我寫了下面的JavaScript的觀點:

var orderModel={}; 
$(".bulkOrderNumericInput").each(function (index,element) { 
     if ($(this).val().length!=0) { 
      orderModel[i]={Cylinder:$(this).attr('valuex'),Sphere:$(this).attr('valuey'),Quantity:$(this).val()}; 
      i++; 
     } 
    }); 

誰能幫助我?

+0

我認爲你使用的是jQuery。您是否想要了解如何使用AJAX將JavaScript數組發送到服務器?我看不到任何MVC - 這是通用設計模式,還是您的意思是.net技術? – halfer

+0

感謝上面的人。你真好。 – Wayou

回答

3
var orderModel = []; 
//loop all the inputs in the page to get values, let's say you give all the inputs a class named'.orderinput' 
$('#checkout').click(function(){ 
    $(".orderinput").each(function(){ 
    orderModel.push({Cylinder:$(this).val(),Sphere:blah,Quantity:blah,...); 
    }); 
    }); 

//not all values are sotred into the orderModel, the do the post 
$.ajax({ 
     url: 'your url', 
     data:JSON.stringify(orderModel), 
     type: 'POST', 
     contentType: 'application/json; charset=utf-8',//this is important!! 
     success : function(msg) { 
      //blah.. 
     }, 
     error: function (xhr, ajaxOptions, thrownError) { 
      //blah... 
     } 
    }); 
+0

謝謝讓我們知道。 – didierc

2

我用下面的tutorial,我在這SO question找到這個答案。儘管此代碼尚未經過測試,但希望它能讓您走上正軌。請不要猶豫,問你是否還有其他問題。

在javascript中填充了orderModel數組後,您所剩下的就是使用jquery發佈數據。 jquery對象包含一個ajax方法(documentation),可讓您方便地執行此操作。下面的代碼,放置在你的JavaScript代碼到底是應該做的伎倆:

$.ajax({ 
    type: 'POST', 
    traditional: true, 
    data: { models: orderModel } 
}); 

注意,這個Ajax調用將在顯示的頁面的URL來進行。要選擇不同的URL,使用下面的代碼:

$.ajax(URL, { /* same data as above */ }); 

在服務器端,按照本教程中,你應該有一個類定義其持有models屬性。該屬性將填充您在腳本中收集到的javascript數組數據。

聖誕快樂!

+0

謝謝你的anwser。 – Wayou

+0

你是否設法讓它工作? – didierc

+0

不,我用其他方式來完成這個。 – Wayou

相關問題