Jquery 在asp.net mvc中使用单一选择的ListBoxFor

Jquery 在asp.net mvc中使用单一选择的ListBoxFor,jquery,asp.net-mvc,razor,Jquery,Asp.net Mvc,Razor,我正在使用最新的MVC5我希望使用列表框而不是下拉列表。使用哪个控件的决定不是单/多选择决定 这就是我得到的错误: An exception of type 'System.InvalidOperationException' occurred in System.Web.Mvc.dll but was not handled in user code Additional information: The parameter 'expression' must evaluate to an

我正在使用最新的MVC5我希望使用列表框而不是下拉列表。使用哪个控件的决定不是单/多选择决定

这就是我得到的错误:

An exception of type 'System.InvalidOperationException' occurred in System.Web.Mvc.dll but was not handled in user code

Additional information: The parameter 'expression' must evaluate to an IEnumerable when multiple selection is allowed.

@using (Html.BeginForm())
{
   // @Html.ValidationMessageFor(model => model.)
    @Html.ListBoxFor(x => x.SelectedCompanyId, new SelectList(Model.Companies, "CompanyId", "Address"), new { @id = "CompanyListBox" })
}
但是如何删除多重选择?jQuery在这里没有帮助,因为razor异常是在文档准备好之前首先引发的:

$(document).ready(function () {
    debugger;
    $("#CompanyListBox").removeAttr('multiple');
});

您只能将
ListBoxFor
帮助程序与
IEnumerable
属性一起使用。在您的示例中,如果
SelectedCompanyId
不是
IEnumerable
,它就无法工作。
ListBoxFor
帮助程序设计用于多个选择。另外,如果使用javascript删除
multiple=“multiple”
属性,这与使用
DropDownListFor
帮助程序相同。

只能将
ListBoxFor
帮助程序与
IEnumerable
属性一起使用。在您的示例中,如果
SelectedCompanyId
不是
IEnumerable
,它就无法工作。
ListBoxFor
帮助程序设计用于多个选择。另外,如果使用javascript删除
multiple=“multiple”
属性,这与使用
DropDownListFor
帮助程序相同。

一种方法是使用DropDownListFor,并将“size”属性设置为所需的可见项目数

比如说

@Html.DropdownListFor(x => x.SelectedCompanyId, new SelectList(Model.Companies, "CompanyId", "Address"), new { @id = "CompanyListBox", @size=10 })

将显示一个包含10个可见项的“列表框”

一种方法是使用DropDownListFor并将“size”属性设置为所需的可见项目数

比如说

@Html.DropdownListFor(x => x.SelectedCompanyId, new SelectList(Model.Companies, "CompanyId", "Address"), new { @id = "CompanyListBox", @size=10 })
将显示一个包含10个可见项的“列表框”