Jquery 如何提交2个选择框的内容
我有一个ASP.NET MVC应用程序,包含两个列表框:AvailableItems和AssignedItems。我可以将物品从一个箱子转移到另一个箱子 我还有一些其他相关的值作为属性存储在Save链接上,这些值也需要提交,比如id等等。发布数据时,我可以非常轻松地提交属性,然后使用以下jQuery在Action方法中进行ModelBind:Jquery 如何提交2个选择框的内容,jquery,asp.net-mvc,ajax,Jquery,Asp.net Mvc,Ajax,我有一个ASP.NET MVC应用程序,包含两个列表框:AvailableItems和AssignedItems。我可以将物品从一个箱子转移到另一个箱子 我还有一些其他相关的值作为属性存储在Save链接上,这些值也需要提交,比如id等等。发布数据时,我可以非常轻松地提交属性,然后使用以下jQuery在Action方法中进行ModelBind: $.post($(this).attr("href"), $.getAttributes($(this)), function(result) {
$.post($(this).attr("href"), $.getAttributes($(this)), function(result)
{
//do some fancy stuff
}
, "json");
单击“保存”时,我希望能够将两个列表框的内容提交到关联控制器上的操作方法。理想情况下,动作方法的形式如下:
[AcceptVerbs(HttpVerbs.Post)]
public JsonResult UpdateFactsheetUniverse(WebFactsheetUniverse wfu
, List<string> availableItems
, List<string> assignedItems)
{
// do some fancy stuff
return Json("saved");
}
有人能建议我如何收集这两个列表的内容,并将其与其余数据一起提交,以便我的操作方法可以将它们作为参数吗
如果没有,有人能提出另一个解决方案吗
谢谢
Dave我认为,最终,要使模型绑定器工作,您需要使用如下形式的表单参数:
&availableItems[0]=blah&availableItems[1]=foo&assignedItems[0]=bar&...
这将允许模型绑定器将表单参数解析到一个数组中,但不确定它是否会生成一个列表,但您可以尝试一下,如果不起作用,则改为使用字符串[]
假设您正在使用multiselect,它可能看起来像:
var params = ''
$('#AvailableItems option').each( function(i) {
params += '&availableItems[' + i + ']=' + $(this).val();
});
$('#AssignedItems option').each( function(i) {
params += '&assignedItems[' + i + ']=' + $(this).val();
});
我认为,最终,要使模型绑定器工作,您需要使用如下形式的表单参数:
&availableItems[0]=blah&availableItems[1]=foo&assignedItems[0]=bar&...
这将允许模型绑定器将表单参数解析到一个数组中,但不确定它是否会生成一个列表,但您可以尝试一下,如果不起作用,则改为使用字符串[]
假设您正在使用multiselect,它可能看起来像:
var params = ''
$('#AvailableItems option').each( function(i) {
params += '&availableItems[' + i + ']=' + $(this).val();
});
$('#AssignedItems option').each( function(i) {
params += '&assignedItems[' + i + ']=' + $(this).val();
});
这就做到了——我现在在我的操作方法中拥有了继续操作所需的所有数据。谢谢你,巴德。我做到了——我现在在我的行动方法中有了我需要的所有数据,可以继续了。谢谢你,巴德。