无法使用ajax将表数据发送到mvc控制器

时间:2017-07-25 09:41:05

标签: jquery ajax asp.net-mvc

你好,我有一个类似的模型

public class Delivery
{
    public string Description{get,set}
    public string Quantity {get,set}
    public Date Date{get,set}
    public Int LoactionId {get,set}
}

我有一个带有数据的html动态生成表,我使用ajax将这些数据发送到控制器,代码是

function Save(){ 
    var delivery =[];


    $('#table2 tbody').each(function () {

        delivery.push({
            Description:$(this).closest('tr').find('#description').text();
        Quantity:$(this).closest('tr').find('input[name="last_name[]"]').val();
        Date:  $(this).closest('tr').find('.datepicker_recurring_start').val();
        LocationId:$(this).closest('tr').find("#sel option:selected").val(); 
    });

    $.ajax
    ({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "Save/Create/",
        data: JSON.stringify({ Delivery: delivery }),
        dataType: "json",
        success: function (data) {
            alert('Success')
        },
        error: function (x, e) {
            alert('Failed')
        }
    });

}

我的行动方法是

public JsonResult Create(List<Delivery> Delivery )
{
}

但它没有工作它没有从表中获取数据。我不知道我缺少什么或我的代码是错误的。如果有任何方法我可以逐个传递而不使用数组,任何人都可以建议我这样做。我还添加了一个动态表的小提琴,现在有些是空的,但请注意每个都有值

感谢您的帮助。

Dynamic generated table

1 个答案:

答案 0 :(得分:0)

首先我会测试一个不是从foreach循环生成的简单数组,只是为了检查问题所在。例如:

    var delivery  = [
        {Description:'1', Quantity:1, Date:'03.02.2017', LocationId:2  },
        { Description:'1', Quantity:1, Date:'03.02.2017', LocationId:2  }
    ];

然后我会将后端方法中的参数类型更改为数组,如下所示:

    public JsonResult Create(Delivery[] Delivery)
 {
 }