在我的控制器中,我有以下内容(为简洁起见,省略了代码):
public ActionResult Edit(string id)
{
vw_user u = _respository.getProfile(id);
var model = new UserProfileEditViewModel
{
SL_collegeid = new SelectList(_respository.getColleges(u.State), "id", "college1", u.id)
};
return View(model);
}
现在,当我在返回之前调试模型时,它显示在SelectList(SL_collegeid)中选择了特定的学院(u.id)。但是,当页面加载时,未选择所选项目。
以下是cshtml的代码:
@Html.DropDownListFor(model=>model.SL_collegeid, Model.SL_collegeid)
有人可以帮我解决这个问题吗?
提前谢谢你, 克里斯
答案 0 :(得分:1)
当调用控制器方法时,有问题的视图是否没有选择?如果是这样,模型不会覆盖ModelState字典中的内容 - 因此,即使您更改作为视图的支持字段的model属性,最初发布的数据也将胜过它。同样,如果是这种情况,您可以通过不使用html帮助程序并使用Razor语法手动设置HTML中的值来绕过它。
答案 1 :(得分:0)
您必须在声明中返回正确的对象:
return view(yourObj);
或者您也可以尝试:
@Html.DropDownListFor(model=>model.SL_collegeid,new SelectList(Model.YourDropDownList as System.Collections.IEnumerable,model.SL_collegeid ))