Asp.net mvc 2 将listboxFor-MVC 2的选择限制为单选

Asp.net mvc 2 将listboxFor-MVC 2的选择限制为单选,asp.net-mvc-2,listbox,Asp.net Mvc 2,Listbox,我正在使用以下代码生成一个列表框 <%: Html.ListBoxFor(m => m.Subscribers, new List<SelectListItem>(), new { @class = "list_style_Wizard" })%> m.Subscribers,new List(),new{@class=“List\u style\u Wizard”})%> 但是我们可以从列表框中选择多个项目。。如何将其限制为单选???Html。List

我正在使用以下代码生成一个列表框

    <%: Html.ListBoxFor(m => m.Subscribers, new List<SelectListItem>(), new { @class = "list_style_Wizard" })%>
m.Subscribers,new List(),new{@class=“List\u style\u Wizard”})%>

但是我们可以从列表框中选择多个项目。。如何将其限制为单选???

Html。ListBoxFor
用于呈现多选列表框。供单选使用
Html.DropDownListFor

<%: Html.DropDownListFor(m => m.Subscribers, listOfsubscribers, new { @class = "list_style_Wizard" }) %>
m.订阅者,订阅者列表,新的{@class=“list\u style\u向导”})%>

当呈现为列表框时,HTML帮助程序
DropDownListFor
ListBoxFor
似乎添加了
multiple
属性。我结合使用
DropDownListFor
/
ListBoxFor
和jQuery选择器来删除
multiple
属性。在使用剃须刀时:

@Html.DropDownListFor(m => m.SelectedId, Model.SelectList, 
    new { size = 10, @class = "selectOneListBox" })
在JavaScript中:

$(".selectOneListBox").livequery(function () {
    $(this).removeAttr('multiple');
});

我相信您也可以编写自己版本的HTML helper例程,它不会弹出
多个
属性。

通常单选列表框比下拉列表框更好。很遗憾,Microsoft选择不将此选项设置为可选。不建议再使用Livequery。因此,最好在加载页面时删除该属性:$(document).ready(function(){$(“.selectOneListBox”).removeAttr('multiple');});很好,看。我喜欢livequery,它使编写不引人注目的JavaScript变得简单,特别是对于动态创建的内容。但是,它确实会影响性能。您的建议将执行得更好,并且可能最适合这种情况。