$ .ajaxからc#mvcにint配列を送信するにはどうすればよいですか?
$.ajax({
url: <Url of the action>,
type: "POST",
data: JSON.stringify([1,2,3]),
dataType: "json",
contentType: 'application/json; charset=utf-8'
});
とアクションで。
public ActionResult ReceiveIntArray(int[] ints)
{
...
}
mvcはjsonを自動的に解析する必要があります。
チェックアウト この質問。
この質問 から解決策を試してください:
Getを呼び出す前に、
traditional
プロパティをtrueに設定します。例:jQuery.ajaxSettings.traditional = true $.get('/controller/MyAction', { vals: arrayOfValues }, function (data) { ... }
最も簡単な方法は、GETリクエストの引数としてintの区切られた(カンマの可能性がある)文字列リストを送信し、Sting.Split()
を使用してC#MVCレシーバーでそれらを解析することです。
したがって、たとえば$.get("/path-to/receiver/", { myArray: myArray.toString() } );
次に、サーバーで次を使用します
string[] stringArray = Request.QueryString["myArray"].ToString().Split(',')
値を文字列配列に抽出し、次にInt32.TryParse
最後に整数の配列を取得します。
私がやっている方法は、単純なinput:hidden
要素
<input type="hidden" name="elements" value='@String.Join(",", ViewBag.MyArray)' />
また、JavaScriptコードでは文字列として渡します。
$.ajax({
type: "POST",
url: '/Controller/Method',
data:
{
recipients: $("input[name=elements]").val()
},
traditional: true,
success: updateSelected
});
そして最後に、次のような要素をSplit
します。
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Method(string elements)
{
IList<long> selected = elements.Split<long>(',');
...
}
この解決策を試してください:
var Array = [10, 20, 30];
$.ajax({
type: "Post",
datatype: "Json",
url: <Url of the action>,
data: JSON.stringify(Array),
contentType: 'application/json; charset=utf-8',
});