2016-04-01 8 views
0

画像のようなJavaScriptがあるとします。配列 では、変数配列に(複数の)値を入れ、コントローラのアクションメソッドにこの 配列を送ります。しかし、アクションメソッドでは、これを「オブジェクト」として取得します。この「オブジェクト」から値を取得するにはどうすればよいですか?私はajax投稿を使用しないことを好みます。これは可能ですか?はいの場合は、アクションメソッドの値をどのように '捕捉'しますか?複数のJavaScript値をC#アクションメソッドに送信するにはどうすればよいですか?

enter image description here

+0

可能な重複これをチェックしてください。http://stackoverflow.com/questions/25288240/ajax-post-multiple-data-to-asp-net-mvc –

+0

あなたはAJAXを使わずにデータをポストしたいと言っていますか?インスタンス?モデルがある場合、そのプロパティの1つがint配列になる可能性があります。 –

答えて

0

あなたは、整数、あなたのこのようなアクションメソッドを持って、それを受け取るために

[HttpPost] 
public ActionResult Items(int[] items) 
{ 
    // to do : do something with items 
    return Json(items); 
} 

今私はあなたを参照してくださいと仮定すると

var array = [1, 2, 4];  
$.ajax({ 
    url: '/Home/Items', 
    type: 'POST', 
    data: { items: array }, 
    success: function(data) { 
     console.log(data); 
    } 
}); 

の配列を送信するためにdataプロパティを使用する必要があります入力フィールドの値を読み、それを配列変数の値として使用します。入力フィールドにどのような形式の価値があるかわかりません。コンマで区切られたintのリスト(例: "1,3,5")の場合は、split関数を使用してその配列を取得できます。 Ajax呼び出しで

var v = "2,5,78,8"; 
var array = v.split(','); 
0

:あなたはAjax呼び出しを使用しない場合

public ActionResult Details(string[] function_param) 

、その後、HTMLで入力タイプ隠されたコントロールを作成して置く:コントローラで

var items = ['USA', 'UK', 'Canada']; 
    $.ajax(
     { 
      type: "POST", 
      url: "/Test/Details", 
      contentType: 'application/json', 
      data: JSON.stringify({ function_param: items }) 
     }); 

javascript配列を隠しフィールドに追加し、フォームを送信し、request.form ["hiddencontrol"]を使用してコントローラに値を取得します。

JS:

$("#hiddenControl").val(JSON.stringify(items)); 
関連する問題