gpt4 book ai didi

javascript - 如何序列化 JS 数组以便 Asp.net MVC 可以将它绑定(bind)到 C# 列表?

转载 作者:搜寻专家 更新时间:2023-11-01 04:11:45 25 4
gpt4 key购买 nike

我正在尝试将一个 jquery 可排序的项目列表发送到我的 MVC 方法以进行数据处理。目前我正在尝试通过以下代码发送它:

var data = {};
data.projectId = projectId;
data.publishedSectionIds = $('#section_list').sortable('toArray');

// Perform the ajax
$.ajax({ url: '/Project/Publish',
type: 'POST',
data: data,
success: function (result) {
alert(result.message);
}
});

此代码的问题是它使 Post 参数看起来像这样:

projectId=2&publishedSectionIds[]=1&publishedSectionIds[]=2

此问题(如 this question 的解决方案所示)是 MVC 似乎仅在后置参数 NOT 有方括号时序列化到列表中。

我如何序列化 javascript 数组以便我的操作带有 List<int>参数模型绑定(bind)正确?


编辑: Action 的签名如下:

 public ActionResult Publish(int projectId, List<int> publishedSectionIds)

最佳答案

尝试添加以下选项 traditional: true

例如

$.ajax({ url: '/Project/Publish',
type: 'POST',
data: data,
traditional: true,
success: function (result) {
alert(result.message);
}
});

As of jQuery 1.4, the $.param() method serializes deep objects recursively to accommodate modern scripting languages and frameworks such as PHP and Ruby on Rails. You can disable this functionality globally by setting jQuery.ajaxSettings.traditional = true;.

http://api.jquery.com/jQuery.param/

关于javascript - 如何序列化 JS 数组以便 Asp.net MVC 可以将它绑定(bind)到 C# 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3349097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com