在控制器里:ViewBag.Province = new SelectList(plist, "Name", "Name", selectValue);
在页面里:@Html.DropDownListFor(model => model.Province, ViewBag.Province as SelectList, "==选择==", new { onchange = "GetCity(this)" })
在控制器里我有设置默认值,如:selectValue=“北京”,但页面里没有选中,是怎么回事呢??
@Html.DropDownListFor的默认值是判断的Model.Province,所以需要将默认值赋到Model.Province上去才行。
能具体说一下代码怎么写吗,或给个例子?谢谢
@xiaoliepower:
在控制器里:model.Province = "北京";
就是让你的Model的province不为空,然后ViewBag.Province不用设默认值,View里面写法不变
好像就这样的啊
我会用js控制选中。
@Html.DropDownList("listType") ViewData["listType"] = new List<SelectListItem>() { new SelectListItem() { Text = "bj", Value = "1", Selected = true //默认选中 }, new SelectListItem() { Text = "sh", Value = "2" }, new SelectListItem() { Text = "gz", Value = "3" }, new SelectListItem() { Text = "sz", Value = "4" }
我也遇到同样的问题,控制器中改成ViewBag.XX=new List<SelectListItem>()就可以了。
ViewBag.Province,model.Province,Province不能重名。
控件的name和viewbag(或viewdata)不能重名
对的,这个是正确答案