Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何提交2个选择框的内容_Jquery_Asp.net Mvc_Ajax - Fatal编程技术网

Jquery 如何提交2个选择框的内容

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) {

我有一个ASP.NET MVC应用程序,包含两个列表框:AvailableItems和AssignedItems。我可以将物品从一个箱子转移到另一个箱子

我还有一些其他相关的值作为属性存储在Save链接上,这些值也需要提交,比如id等等。发布数据时,我可以非常轻松地提交属性,然后使用以下jQuery在Action方法中进行ModelBind:

$.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();
});

这就做到了——我现在在我的操作方法中拥有了继续操作所需的所有数据。谢谢你,巴德。我做到了——我现在在我的行动方法中有了我需要的所有数据,可以继续了。谢谢你,巴德。