我正在开发一组用户分配模块 为此我有两个模型:
Group
。商店组信息。UserGroup
。存储有关组与用户(UserID
,GroupID
)之间关联的信息。首先,我写了以下Action Method
:
public ViewResult Details(int id) {
ViewBag.ADUsers = repository.GetADUsers();
return View(repository.FindAllGroup(id));
}
repository.GetADUsers
将检索当前在Active Directory中的所有用户
视图如下:
@model TMS.Models.Group
<h2> Assign Users To the Group</h2>
@foreach (var ad in ViewBag.ADUsers) {
<tr>
<td>
<div >@ad.SamAccountName </div>
</td>
</tr>
}
但我如何扩展它以包括这些主要功能。
CheckBox
旁边添加SamAccoutnName
。SamAccountName
已分配给Group
,则CheckBox
应为checked = true
,否则应为checked = false
。CheckBox
es列表并相应地更新UserGroup
表。答案 0 :(得分:2)
List<TypeOfListReturn> ADUsersList = ViewBag.ADUsers as List<TypeOfListReturn>;
foreach (var ad in ADUsersList )
{
<table>
<tr>
<td>
<div>
@ad.SamAccountName
@Html.CheckBox("chk_" + ad.SamAccountName, ad.isInGroup)
</div>
</td>
</tr>
</table>
}
这是你1和2的答案。 对于第三个我更喜欢你使用模型。如果使用model绑定名称和复选框,则在回发时将返回复选框的值。
答案 1 :(得分:0)
我可以回答1和2,但不能回答3。
- 目前我正在显示所有AD用户的列表。但是我需要在SamAccoutnName旁边添加一个CheckBox。
- 如果已将SamAccountName分配给该组,则应检查CheckBox = true,否则应检查= 假的。
醇>
您只需要将复选框的HTML添加到foreach中,然后使用if语句检查“已检查”条件:
@foreach (var ad in ViewBag.ADUsers) {
<tr>
<td>
@if (ad.isInGroup)
{
<input type="checkbox" name="@ad.SamAccountName" checked="checked">
}
else
{
<input type="checkbox" name="@ad.SamAccountName" checked="">
}
<div >@ad.SamAccountName </div>
</td>
</tr>
}
如果您希望这些项目并排,您可能希望将<div>
更改为范围<span>
。
此外,我的示例假定您的“广告”对象具有一个属性,该属性指示此人是否在此组中。您需要使用当前使用的任何方法来检查它。