简单的情况
一个对象用户有许多UserGroup.
我想在mvc3表单编辑或创建操作上实现从下拉列表中选择UserGroups.
控制器:
private List<User> GetAllUsers()
{
List<User> users;
users = find all users to List...
return users;
}
public ActionResult Edit(Guid Id)
{
ViewBag.UserGroups = new SelectList(GetAllUsers(), "UserId", "Name");
return View();
}
Run Code Online (Sandbox Code Playgroud)
视图:
<div class="editor-label">
@Html.LabelFor(model => model.UserGroupId, "UserGroupId")
</div>
<div class="editor-field">
@Html.DropDownList(WHAT TO PUT HERE ?);
@Html.ValidationMessageFor(model => model.UserGroupId)
</div>
Run Code Online (Sandbox Code Playgroud)
哦,请使用视图模型,切掉ViewBag的垃圾,每次看到它都会让我生病.
public class UserViewModel
{
public int UserGroupId { get; set; }
public IEnumerable<SelectListItem> UserGroups { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后:
public ActionResult Edit(Guid Id)
{
var model = new UserViewModel
{
UserGroups = new SelectList(GetAllUsers(), "UserId", "Name")
}
return View(model);
}
Run Code Online (Sandbox Code Playgroud)
并在视图中:
@model UserViewModel
...
<div class="editor-label">
@Html.LabelFor(model => model.UserGroupId, "UserGroupId")
</div>
<div class="editor-field">
@Html.DropDownListFor(x => x.UserGroupId, Model.UserGroups);
@Html.ValidationMessageFor(model => model.UserGroupId)
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
但如果你想让我生病并保持ViewCrap:
@Html.DropDownListFor(
x => x.UserGroupId,
(IEnumerable<SelectListItem>)ViewBag.UserGroups
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1502 次 |
| 最近记录: |