我有以下的控制器签名:
视图模型表示表单字段的数组(HTML表格中选择的项目)。我通过Robert Koritnik的.toDictionary() jQuery插件(http://erraticdev.blogspot.com/2010/12/sending-complex-json-objects-to-aspnet.html)弄清楚了如何将表单元素作为数组参数传递给控制器。
然而,现在我需要向控制器传递一个额外的字符串参数(来自下拉框),但我无法弄清楚如何使其工作。我尝试了各种组合,例如:
我也尝试了以下方法:
但是两个都没有起作用。
如果我从要发送的数据中删除dialerJob参数,则代理状态会在控制器中正确显示。发送的内容如下:
[0].subStateId=1&agentStates[1].agentId=9876&agentStates[1].projectId=999&agentStates
[1].stateId=1&agentStates[1].subStateId=1
但如果我包含了拨号作业(dialerJob),那么发送的内容就是:
[0].projectId & agentStates[1][value]=999 & agentStates[2][name]=[0].stateId & agentStates[2][value]=1 & agentStates[3][name]=[0].subStateId & agentStates[3][value]=1 & agentStates[4][name]=[1].agentId & agentStates[4][value]=15884 & agentStates[5][name]=[1].projectId & agentStates[5][value]=999 & agentStates[6][name]=[1].stateId & agentStates[6][value]=1 & agentStates[7][name]=[1].subStateId & agentStates[7][value]=1
这段文本看起来有些混乱。
public void DoSomething(string dialerJob, MyViewModel[] agentStates)
视图模型表示表单字段的数组(HTML表格中选择的项目)。我通过Robert Koritnik的.toDictionary() jQuery插件(http://erraticdev.blogspot.com/2010/12/sending-complex-json-objects-to-aspnet.html)弄清楚了如何将表单元素作为数组参数传递给控制器。
然而,现在我需要向控制器传递一个额外的字符串参数(来自下拉框),但我无法弄清楚如何使其工作。我尝试了各种组合,例如:
var job = $('#DialerJobs').attr('value');
var data1 = $.toDictionary(data, "agentStates");
$.ajax({
url: "/Blending/ChangeOutboundJob",
type: "POST",
dataType: "application/JSON",
data: {job, data1}
});
我也尝试了以下方法:
var job = $('#DialerJobs').attr('value');
var data1 = $.toDictionary(data, "agentStates");
$.ajax({
url: "/Blending/ChangeOutboundJob",
type: "POST",
dataType: "application/JSON",
data: {dialerJob: job, agentStates: data1}
});
但是两个都没有起作用。
如果我从要发送的数据中删除dialerJob参数,则代理状态会在控制器中正确显示。发送的内容如下:
agentStates[0].agentId=7654&agentStates[0].projectId=999&agentStates[0].stateId=1&agentStates
[0].subStateId=1&agentStates[1].agentId=9876&agentStates[1].projectId=999&agentStates
[1].stateId=1&agentStates[1].subStateId=1
但如果我包含了拨号作业(dialerJob),那么发送的内容就是:
dialerJob=SomeJob&agentStates[0][name]=[0].agentId&agentStates[0][value]=84&agentStates[1][name]=
[0].projectId & agentStates[1][value]=999 & agentStates[2][name]=[0].stateId & agentStates[2][value]=1 & agentStates[3][name]=[0].subStateId & agentStates[3][value]=1 & agentStates[4][name]=[1].agentId & agentStates[4][value]=15884 & agentStates[5][name]=[1].projectId & agentStates[5][value]=999 & agentStates[6][name]=[1].stateId & agentStates[6][value]=1 & agentStates[7][name]=[1].subStateId & agentStates[7][value]=1
这段文本看起来有些混乱。