如何将IEnumerable列表从Ajax发送到Controller

时间:2014-03-12 08:01:48

标签: javascript ajax asp.net-mvc telerik-grid telerik-mvc

我在MVC3中有一个Web应用程序,我正在使用Telerik Grid Batch Editing。

批量编辑具有保存更改按钮,该按钮将UPDATED COLUMNS返回到控制器IEnumerable列表,如

    [GridAction]
    public ActionResult Update(IEnumerable<Customers> updated)
    {
        ///user codes
    }

但是如何收集更新的行并使用ajax将控件中的IEnumerable列表作为IEnumerable列表发送到控制器?

修改 我正在查看我的观点

enter image description here

我只想将更新的行数据发送到Controller并保存更改按钮可以执行此操作但在发送值之前我只想向用户询问“你确定要加载吗?”并且在发送数据之后我想刷新所有页面

所以我想用ajax请求来做这个,因为我也在使用ajax请求进行批量编辑

你对这种情况有什么看法吗?

1 个答案:

答案 0 :(得分:4)

使用AJAX POST,因为我在测试的Javascript函数中使用了::

function TestAjax() {
    var Test = [];

    for (var i = 0; i < 5; i++) {
        Test.push({ ID: i, Name: "RJ" });
    }

    $.ajax({
        type: 'POST',
        url: rootUrl('Home/TestPost'),
        contentType: "application/json",
        //data: { Test: JSON.stringify( data) },
        data:JSON.stringify( {Test: Test}),
        success: function (data) {
            alert("Succeded");
        }
    });
}

在服务器端(即在Controller中)使用类似::

的东西
public ActionResult TestPost(IEnumerable<TestViewModel> Test)
    {
        return Json(3);
    }

ViewModel包含与::

不同的数据类型的不同属性
public class TestViewModel
    {
        public long ID { get; set; }
        public string Name { get; set; }
    }

这很好用。可能这会对你有帮助。