Jquery multiselect在POST后返回一个选定的查询

本文关键字:一个 查询 multiselect POST 返回 Jquery | 更新日期: 2023-09-27 18:26:39

我有一个Jquery multiselect控制

$(function () {
    $(".multiselect").multiselect().multiselectfilter({
        filter: function (event, matches) {
            if (matches.length != null && !matches.length) {
                // do something
            }
        }
    });
});

这与DropDownListFor 相连

@Html.DropDownListFor(x => x.ID, new MultiSelectList(Model.Employees, "Id", "Name"), "Please Select", new {multiple = "multiple", @class = "multiselect"})  

当我按下按钮发布时,强类型模型会发送列表中选中的任何人。好的但是,在发布之后,它只显示DropDownListFor中的第一个选定项目,而不显示其他项目。当帖子发生时,我确实会用选择的 ID发回模型

// Model.ID which is a `int[]` is bounded to the `DropDownListFor` above has multiple values inside it. 
return View("View" Model)

我需要对Jqueryrazor侧执行某些操作以在回发时显示其他选定项目吗?

感谢

Jquery multiselect在POST后返回一个选定的查询

在msdn中,提供一个接收selectedValues的构造函数。

public MultiSelectList(
    IEnumerable items,
    string dataValueField,
    string dataTextField,
    IEnumerable selectedValues
)
@Html.DropDownListFor(x => x.ID, new MultiSelectList(Model.Employees, "Id", "Name", Model.ToList()), "Please Select", new {multiple = "multiple", @class = "multiselect"}) 

哇,好吧,我发现问题了。

我不确定是.NET错误还是我需要在代码中更改的东西,但更改

@Html.DropDownListFor(x => x.ID, new MultiSelectList(Model.Employees, "Id", "Name"), "Please Select", new {multiple = "multiple", @class = "multiselect"}) 

@Html.ListBoxFor(x => x.ID, new MultiSelectList(Model.Employees, "Id", "Name"), "Please Select", new {multiple = "multiple", @class = "multiselect"}) 

只是神奇地起作用。

现在,在我寻找解决方案的过程中,我从未看到过一篇帖子说"DropDownListFor不适用于multiSelectList或上面的任何内容,但我很乐意有人解释我做错了什么?

然而,这可能会使搜索解决方案的人节省数小时的时间。

感谢所有提供帮助的人:)