Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.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/html/83.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
Asp.net mvc 错误理解mvc默认绑定_Asp.net Mvc_Model Binding_Jquery Chosen - Fatal编程技术网

Asp.net mvc 错误理解mvc默认绑定

Asp.net mvc 错误理解mvc默认绑定,asp.net-mvc,model-binding,jquery-chosen,Asp.net Mvc,Model Binding,Jquery Chosen,我有multiselect jquery stripn(),当我在“Multiple Select”模式下使用它时,我希望控制器的下一个值: posted string = 'value1,value2...' 真的有 posted string = 'value2' 仅当我直接引用FormCollection时,我将获得如下所示的预期值: [HttpPost] public ActionResult TagSearech(/*string tagSelect

我有multiselect jquery stripn(),当我在“Multiple Select”模式下使用它时,我希望控制器的下一个值:

    posted string = 'value1,value2...'
真的有

    posted string = 'value2'
仅当我直接引用FormCollection时,我将获得如下所示的预期值:

    [HttpPost]
    public ActionResult TagSearech(/*string tagSelect*/FormCollection c)
    {
      // only one value here
      // string[] names = tagSelect.Split(',');

      // as expected: value1,....
       string expectedValue = c['tagSelect'];

        return View();
    }
我不明白是什么导致了这种行为

编辑

以下是我的看法:

    @using (Html.BeginForm("TagSearech", "Tag"))
    {
       @Html.DropDownList("tagSelect", Model, new { @class = "chzn-select",  data_placeholder = "tag names", multiple = "" })
       <input  type="submit"/>
    }
@使用(Html.BeginForm(“TagSearech”、“Tag”))
{
@DropDownList(“tagSelect”,Model,new{@class=“chzn select”,data_placeholder=“tag names”,multiple=”“})
}

MVC将尝试将URL上的输入数据绑定到模型中。我还没有看到select.js是如何将数据发回服务器的,但本质上它的格式是错误的,因此MVC将它看到的第一个元素绑定到字符串模型

FormsCollection检索URL中发布的所有数据,这就是为什么所有选定值都可以在URL中看到的原因


是否尝试将传入模型从字符串更改为字符串[],并查看是否所有项都绑定到数组?

,使用数组的想法很好。可能这不是错误的格式-作者让剽窃以这种方式工作。似乎有几个字段具有相同的名称和不同的值。在这种情况下,MVC正确地将第一个值绑定到字段中,但不知道如何处理其余的字段。字符串数组将起作用,因为绑定器可以继续为具有相同名称的变量赋值。