MVC中使用DropDownList

MVC中使用DropDownList

ASP.NET MVC中DropDownList与TextBox等控件不同,它使用的是select标记。它需要两个值:在下拉框中显示的列表,和默认选项。而自动绑定一次只能绑定一个属性,因此你需要根据需要选择是绑定列表,还是默认选项。

一、MVC中DropDownList的构造方法

  •  
  • 
    public static string DropDownList(this HtmlHelper htmlHelper,
      string name,
      IEnumerable<SelectListItem> selectList,
      string optionLabel,
     IDictionary<string,object> htmlAttributes)
    
    		
  • selectList参数说明

    1、selectList包含

    Items:用于在select标记中出现的列表,通常使用option标记表示。IEnumerable类型。

    DataTextField:作为option的text项,string类型。

    DataValueField:作为option的value项,string类型。

    SelectedValues:选中项的value值,IEnumerable类型。

    2、SelectList构造函数

  •  
  • 
    public SelectList(IEnumerable items, string dataValueField, string dataTextField, object selectedValue)  
        : base(items, dataValueField, dataTextField, ToEnumerable(selectedValue)) {  
        SelectedValue = selectedValue;  
    }
    
    		
  •  

    二、MVC中DropDownList的使用方式

     

    1、方式一

  •  
  •  
  • C# 代码   复制
  • 
    var users=GetUsers();//获取所有用户
    var selectList=new SelectList(users,"Age","Name","24");
    ViewBag.list=selectList;
    
    //cshtml使用
    @Html.DropDownList("list")
    
    //说明
    
    列表:users
    
    显示的选项:"Age"
    
    选项对应的值:"Name"
    
    默认选中的项为 值为"24"的记录
    
    				
  •  方式二

  •  
  •  
  • C# 代码   复制
  • 
    //控制器中用:
    
     ViewBag.ProvinceId = Provinces.Select(o => new SelectListItem
    
                {
    
                    Selected = o.ProName == "河南省" ? true : false,
    
                    Text = o.ProName,
    
                    Value = o.ProID.ToString()
    
                });
    
    
    
    
    //前端用:这样配合就会有默认值
    
    @Html.DropDownList("ProvinceId")
    
    		
  • 方式三

  •  
  •  
  • C# 代码   复制
  • 
    List<SelectListItem> items = new List<SelectListItem>();
    items.Add(new SelectListItem { Text = "Kirin", Value = "29" });
    items.Add(new SelectListItem { Text = "Jade", Value = "28", Selected = true});
    items.Add(new SelectListItem { Text = "Yao", Value = "24"});
    ViewBag.list = items;
    
    //在View中使用
    
    @Html.DropDownList("list")
    
    		
  • 方式四

  •  
  •  
  • C# 代码   复制
  • 
    List<SelectListItem> items = new List<SelectListItem>();
    items.Add(new SelectListItem { Text = "Kirin", Value = "29" });
    items.Add(new SelectListItem { Text = "Jade", Value = "28"});
    items.Add(new SelectListItem { Text = "Yao", Value = "24"});
    ViewBag.list = items;
    ViewBag.selected = 24;
    
    //View中使用
    
    @Html.DropDownList("selected", ViewBag.list as IEnumerable<SelectListItem>)
    
    //说明
    
    ViewBag.list绑定为下拉框,然后从ViewBag获取key为selected的项,并将下list中Value值与该项的值相等的SelecteListItem设为默认选中项。
    
    		
  • 方式五

  •  
  •  
  • C# 代码   复制
  • 
    public enum Unit
    {
      吨,
      堆,
    }
    var values = Enum.GetValues(typeof(Unit)).Cast<Unit>();
    var items = from value in values
               select new SelectListItem { Text = value.ToString(), Value = value.ToString()., Selected = value == Unit.堆 };
    
    //view中使用
    
    @Html.DropDownList("MovieType")
    
    		
  • 标签: