控制器操作参数未从 AJAX 开机自检正确填充
Controller Action parameter not properly populated from AJAX POST
我正在执行 AJAX 调用,我希望控制器操作(使用 HttpPost)接受参数 IEnumerable<PercentageViewModel> percentages
其中PercentageViewModel
是:
public class PercentageViewModel
{
public int Id { get; set; }
public string Percentage { get; set; }
}
操作上填充的数据结构在集合中有 2 个项目,但每个项目都填充默认值(0 和 null)。 这是Chrome网络标头中显示的数据 - 当我单击AJAX Post XHR调用时
percentages[0][Id]:7
percentages[0][Percentage]:26.1
percentages[1][Id]:8
percentages[1][Percentage]:20.3
这是我填充将使用 AJAX Post 调用发送的 params
变量的 JS。
var params = {};
var dict = [];
for (var idx in data) {
var item = {
Id: idx,
Percentage: data[idx]
};
dict.push(item);
}
params['percentages'] = dict;
其中数据变量包含如下数据(写入 Chrome 控制台时):
Object {7: "26.1", 8: "20.3"}
如何在 JS 中构造数据,以便正确填充操作中的数据结构?
完全披露:这是我昨天问的一个问题的改写 - 只是一个更有针对性的问题。
这是允许正确填充服务器端数据结构的答案
var i = 0;
for (var idx in data) {
params['percentages[' + i + '].Id'] = data[idx].Id;
params['percentages[' + i + '].Percentage'] = data[idx].Percentage;
i++;
}
相关文章:
- 开机自检无法正常工作,出现错误
- 类型错误:无法读取开机自检后未定义的属性“正文”(平均值)
- 在 AngularJS 和 CodeIgniter3 中开机自检数据时出现 CORS 错误
- html 开机自检数据未发送
- 快递.js开机自检空要求正文
- 取消选中通过开机自检 [] 中的回显选中的复选框
- 通过开机自检将 XML 发送到另一台服务器
- 控制器中的 MVC3 自动完成和开机自检方法
- 角度 UI 模式开机自检
- 控制器操作参数未从 AJAX 开机自检正确填充
- 王牌编辑器 - 通过开机自检在服务器上保存/发送会话
- ASP.NET Web API 2 - 如何开机自检
- 无法向服务器发送开机自检请求
- 在没有插件的情况下验证验证码?-- 跨服务器开机自检
- 默认$resource开机自检数据
- 尝试开机自检“选择”HTML表单输入时出现PHP错误
- 开机自检时重定向
- JSON 数组导致开机自检后出现额外的括号
- 春季开机自检未返回有效号码
- 如何在开机自检前操作表单文件输入