需求:从数据库中读取权限表的所有下拉菜单列表
有时候我们在MVC框架下编程,需要将从数据库中查出来的值动态添加到下拉菜单以便我们的使用。通过查阅各种资料我找到了几种实现方法:
1. 使用DropDownlist控件
1) Controller中控制器类中代码实现:
<span style="font-family:KaiTi_GB2312;"><span style="font-size:24px;"><strong>public class UserInfoController : Controller
{
//查询权限表中的用户权限
IJurisdictionBll setup =SpringHelper.GetObject<IJurisdictionBll>("JurisdictionBll");
List<JurisdictionViewModel>user = setup.QueryJurisdiction();
//将查询到的数据封装到SelectList中,形成要生成的下拉框选项val值
SelectListuserlist = newSelectList(user, "jurisdictionName", "jurisdictionName");
//调用SelectList的AS方法,生成SelectListItem集合,存入ViewBag中
ViewBag.userlist= userlist.AsEnumerable();</strong></span></span>
2) 视图部分代码实现
<span style="font-family:KaiTi_GB2312;"><span style="font-size:24px;"><strong><div id="divstyle">当前位置:用户管理->:添加用户</div>
@using(Html.BeginForm("AddUserInfo", "UserInfo", FormMethod.Post, new { id = "form1" }))
{
<tablewidth="100%">
<tr>
<tdalign="right">用户名:</td>
<td>
<inputid="lblUserName"class="txtStyle"type="Label"value="@Html.ValueFor(u=> u.userID)"name="lblUseID"align="left"/></td>
</tr>
<tr>
<tdalign="right">密码:</td>
<td><inputclass="txtStyle"id="lblPassword"type="Label"value="@Html.ValueFor(u=> u.pwd)"name="lblPassword"align="left"/></td>
</tr>
<tr>
<tdalign="right">身份证号:</td>
<td><inputclass="txtStyle"type="Label"value="@Html.ValueFor(u=> u.idNumber)"name="lblidNumber"align="left"/></td>
</tr>
<tr>
<tdalign="right">姓名:</td>
<td><inputclass="txtStyle"type="Label"value="@Html.ValueFor(u=> u.realName)"name="lblrealName"align="left"/></td>
</tr>
<tr>
<tdalign="right">用户级别:</td>
<td>
@Html.DropDownList("jurisdictionName",ViewBag.userlistasIEnumerable<SelectListItem>)
</td>
</tr>
<tr>
<tdalign="right">
<inputtype="submit"value="保存"class="btn"/>
</td>
<tdalign="left">
<inputtype="button"value="取消"class="btn"id="btnCancel"/>
</td>
</tr>
</table></strong></span></span>
3) 效果显示:
通过上述方法我实现了数据的动态绑定,当然还有一些其他的方法,给大家分享个链接:C#.NET 在 MVC 中动态绑定下拉菜单的方法