如何将 IEnumerable 列表从 Ajax 发送到控制器
Posted
技术标签:
【中文标题】如何将 IEnumerable 列表从 Ajax 发送到控制器【英文标题】:How to send IEnumerable list from Ajax to Controller 【发布时间】:2014-04-16 05:20:16 【问题描述】:我在 MVC3 中有一个 Web 应用程序,我正在使用 Telerik Grid Batch Editing。
批量编辑有保存更改按钮,它将更新的列返回到控制器 IEnumerable 列表,如
[GridAction]
public ActionResult Update(IEnumerable<Customers> updated)
///user codes
但是如何收集更新的行并使数组像 IEnumerable 列表一样从带有 ajax 的 javascript 发送到控制器?
编辑 我把我的观点 png
我只想将更新的行数据发送到控制器,保存更改按钮可以执行此操作,但在发送值之前我只想问用户“您确定要加载吗?”在发送数据后我想刷新所有页面
所以我想用 ajax 请求来做这件事,因为我也在使用 ajax 请求的批量编辑
你对这种情况有什么经验吗?
【问题讨论】:
为什么要用 JavaScript 发送?您不应该尝试手动解析它。请发布您的视图,以便我们查看相关代码。 嗨! @AndreiV 我粘贴了我的 view.jpg 并解释了我想要什么。 您应该使用 JavaScript(或 jQuery)在提交按钮上添加一个事件监听器。点击后,您只需显示confirm
。
@AndreiV 我尝试放置事件,但单击后我必须将 IEnumeratable 列表发送到控制器中的更新函数
【参考方案1】:
使用我在测试过的 Javascript 函数中使用的 AJAX POST::
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");
);
在服务器端(即在控制器中)使用类似的东西::
public ActionResult TestPost(IEnumerable<TestViewModel> Test)
return Json(3);
ViewModel 包含不同数据类型的不同属性::
public class TestViewModel
public long ID get; set;
public string Name get; set;
这工作正常。或许这会对你有所帮助。
【讨论】:
Thnx @Rahul 我明白你在做什么,但我想发送所有更新的行数据,有些数据是十进制的,有些数据是字符串我怎样才能在网格中捕获更新的行?? @saul dataType 没有任何内容。正如您在我给定的示例中看到的那样,我正在传递 ID(长)和名称(字符串)。好的,让我也用 viewmodel 编辑我的答案。以上是关于如何将 IEnumerable 列表从 Ajax 发送到控制器的主要内容,如果未能解决你的问题,请参考以下文章
如何将多个 IEnumerable<IEnumerable<T>> 列表添加到 IEnumerable<List<int>>
将复选框列表传递到视图中并拉出 IEnumerable [重复]
Django - 如何正确地将列表从模板发送到 AJAX 以查看?
使用 AJAX 绑定时创建/更新后具有 IEnumerable 属性的 Kendo Grid 模型未正确更新
jquery - 如何使用通过 AJAX 从 MySQL 和 PHP 检索的数据将图像添加到 Select2 下拉列表?