asp.net html.listboxfor

maz*_*ztt 2 asp.net asp.net-mvc

我将如何填充ASP.NET MVC列表框?让它不可选择?我将如何从列表框中删除所选项目

tva*_*son 11

你想要一个不可选择的选择?

 <%= Html.ListBoxFor( m => m.Choices, 
                      Model.ChoicesMenu,
                      new { disabled = "disabled" } ) %>
Run Code Online (Sandbox Code Playgroud)

我们的想法是,你的模型需要有一个IEnumerable<SelectListItem>能够保存你选择的键/值对,这里是ChoicesMenu.选择的实际值(如果可以选择)将发布在Choices属性中.使用允许您指定html属性的签名并使其禁用以防止选择它.当然,您可以使用javascript执行此操作(或撤消它).

模型:

 public class ViewModel
 {
     public int[] Choices { get; set; }
     public IEnumerable<SelectListItem> ChoicesMenu { get; set; }
 }
Run Code Online (Sandbox Code Playgroud)

行动(相关位)

 var model = new ViewModel
 {
     ChoicesMenu = db.Items
                     .Select( i => new SelectListItem
                      {
                          Text = i.Name,
                          Value = i.ID.ToString()
                      } );
 } 
Run Code Online (Sandbox Code Playgroud)