日期:2014-05-17  浏览次数:20380 次

关于mvc3 dropdownlistfor的问题。
弱弱的问问,如果controller传递一个model给view。在传递的view当中包含一个List<selectListItem>
比如

User.No=1;
User.Name="admin";
User.Address="来自csdn论坛";
User.Grades=new List<SelectListItem>{
     new SelectListItem{Text="1年级",Value=1},
     new SelectListItem{Text="2年级",Value=2,Selected=true},   //这里表示当前学生是2年级
     new SelectListItem{Text="1年级",Value=1},
};

那么 如果传递这个对象到view 构建形成edit效果,那么在edit视图当中,除了若干个文本框有
当前需要修改的用户的默认值,需要构建一个下拉列表框,select,代码如下:

@Html.DropDownListFor(m=>m.Grades,Model.Grades)   

求问,为什么 我的页面,显示出来以后 下拉列表里边有3个年级 ,但是默认选中的是1年级,而不是我想要的2年级,是我的问题,还是默认选中不能这么设置。如果是我的问题,问题在那里,如果不能这么设置,有应该如何设置。  


这里传递对象必须使用强类型   和  dropdownlistfor
mvc3

------解决方案--------------------
测试如下,是选中二年级
ViewBag.list = new List<SelectListItem>
            {
                new SelectListItem{Text="1年级",Value="1"},
                new SelectListItem{Text="2年级",Value="2",Selected=true},   //这里表示当前学生是2年级
                new SelectListItem{Text="1年级",Value="1"},
            };
            string[] s = new string[1] { "sss" };
            return View(s);

@model string[]

@Html.DropDownListFor(a=>a[0],ViewBag.list as List<SelectListItem>)

------解决方案--------------------
@Html.DropDownListFor(m=>m.Grades,Model.Grades)