0

我正在开发组  用户分配模块。
为此,我有两个模型:

  1. Group. 商店组信息。
  2. UserGroup. UserID存储有关 Group 和用户 ( , GroupID)之间关联的信息。
  3. 我没有用户表,因为他们是 AD 用户。

首先,我写了以下内容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> 
}

但是我如何扩展它以包含这些主要功能。

  1. 目前我正在显示所有 AD 用户的列表。但我需要CheckBoxSamAccoutnName.
  2. 如果SamAccountName已经分配给Group,那么CheckBox应该是checked = true,否则应该是checked = false
  3. 要添加一个 AssignUsersGroup Post 操作方法,它将接受CheckBoxes 列表并UserGroup相应地更新表。
4

2 回答 2

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 答案。对于第三个我希望你使用模型。如果使用模型绑定名称和复选框,则在回发中将返回复选框的值。

于 2013-07-16T10:35:15.047 回答
0

我可以回答 1 和 2,但不能回答 3。

  1. 目前我正在显示所有 AD 用户的列表。但我需要在 SamAccoutnName 旁边添加一个 CheckBox。
  2. 如果 SamAccountName 已分配给 Group,则 CheckBox 应选中 = true,否则应选中 = false。

您只需将复选框的 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>

此外,我的示例假设您的“广告”对象具有指示此人是否在此组中的属性。您需要使用当前使用的任何方法来检查。

于 2013-07-15T14:41:34.397 回答