一、非强类型:

Controller:

ViewData["AreId"] = from a in rp.GetArea()

                               select new SelectListItem {

                               Text=a.AreaName,

                               Value=a.AreaId.ToString()

                               };

View:@Html.DropDownList("AreId")

还能够给其加上一个默认选项:@Html.DropDownList("AreId", "请选择");


二、强类型:

DropDownListFor经常使用的是两个參数的重载,第一參数是生成的select的名称,第二个參数是数据,用于将绑定数据源至DropDownListFor

Modle:   public class SettingsViewModel

   {

       Repository rp =new Repository();

       public string ListName { get; set; }  

       public  IEnumerable<SelectListItem> GetSelectList()

       {

               var selectList = rp.GetArea().Select(a => new SelectListItem {

                               Text=a.AreaName,

                               Value=a.AreaId.ToString()

                               });

               return selectList;

           }

       }

Controller:       public ActionResult Index()

       {

           return View(new SettingsViewModel());

       }

View:@model Mvc3Applicationtest2.Models.SettingsViewModel

@Html.DropDownListFor(m=>m.ListName,Model.GetSelectList(),"请选择")