首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DropDownListFor问题

DropDownListFor问题
EN

Stack Overflow用户
提问于 2017-02-10 04:54:13
回答 1查看 28关注 0票数 0

我想知道是否有人遇到过像我现在这样的问题。

控制器:

代码语言:javascript
复制
_OpsAdminViewModel.userRoleID = _OpsAdminViewModel.retrieveHighestUserRoleGuidFromUserID(id.Value);
_OpsAdminViewModel.ActiveRoleList = _OpsAdminViewModel.GetActiveRoles();
_OpsAdminViewModel.UserRoleSelectList = new SelectList(_OpsAdminViewModel.ActiveRoleList, "RoleID", "RoleName", _OpsAdminViewModel.userRoleID);

查看:

代码语言:javascript
复制
@Html.DropDownListFor(model=>model.selectedRoleID, Model.UserRoleSelectList)

现在,这就是它变得非常奇怪的地方。当我在控制器的返回行或视图的DropDownListFor行上放置一个分隔符时,我确实看到我想要选择的值应该被选中。展开UserRoleSelectList对象,显示正确的"SelectedValue“ID,并且在"Results View”中,正确的值为"True“。但是,在呈现页面时,下拉菜单将显示下拉菜单的0位置元素。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-10 04:57:58

模型绑定通过绑定到属性的值来工作。当您使用DropDownListFor()时,该方法将在内部构建一个新的IEnumerable<SelectListItem>,并根据您的属性的值设置Selected属性。在您的示例中,selectedRoleID的值与其中一个选项的值不匹配,因此选择了第一个选项(因为必须选择某些选项)。

在将模型传递给视图之前,在GET方法中设置selectedRoleID的值

代码语言:javascript
复制
model.selectedRoleID = _OpsAdminViewModel.userRoleID;
return View(model);

并删除SelectList构造函数中的最后一个参数,因为它毫无意义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42146669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档