Send list/array as parameter with jQuery getJson

前端 未结 4 1571
攒了一身酷
攒了一身酷 2020-12-13 10:06

I have the following where I\'m trying to send list/array to MVC controller method:

var id = [];
var inStock = [];

$table.find(\'tbody>tr\').each(functio         


        
4条回答
  •  独厮守ぢ
    2020-12-13 10:38

    In the view, generate multiple named fields (not id, as id should be unique per field), noting the use of Name not name:

    @foreach (var item in Model.SomeDictionary)
    {
        @Html.TextBoxFor(modelItem => item.Value.SomeString, new { Name = "someString[]" })
    }
    

    Then retrieve the input field values using jQuery, so:

    var myArrayValues = $('input[name="someString[]"]').map(function () { return $(this).val(); }).get();
    

    You can use this directly in jQuery / AJAX as follows:

    $.ajax({
        type: "POST",
        url: "/MyController/MyAction",
        dataType: 'json',
        data: {
            someStrings: $('input[name="someString[]"]').map(function () { return $(this).val(); }).get(),
            someDates: $('input[name="someDate[]"]').map(function () { return $(this).val(); }).get(),
    

    Then in the controller action in MVC:

    [HttpPost]
    public JsonResult MyAction(string[] someStrings, DateTime[] someDates...
    

提交回复
热议问题