1

假设我有这样的角色表:

tb_role
RoleId  Role_Name
     1  SalesCreate
     2  SalesEdit
     3  AgentCreate
     4  AgentEdit

我想在复选框中列出销售角色(SalesCreate 和 SalesEdit,所以它只有 2 个复选框)。我使用 aspnet 配置创建了我的 tb_role,因此它不使用实体。

这是我的控制器:

RegisterModel account = new RegisterModel();
account.Roles = new MultiSelectList(Roles.GetAllRoles()); 

和我的观点:

 <td><select id="Roles" name="Roles">
                    <option>Sales</option>
                    <option>Agent</option>
     </select>
 </td>

@foreach (var item in Model.Roles)
             {
                 <label for="@item.Value">
                   <input type="checkbox" id="@item.Value" name="RolesSelected" value="@item.Value" @(item.Selected ? "checked" : "") />@item.Text</label>
             }

当我运行我的项目时,我的复选框列出了 tb_role 中的所有角色。我希望如果我选择销售,我的复选框会列出所有销售角色(SalesCreate 和 SalesEdit)。怎么做 ?

多谢

4

1 回答 1

0

有几种方法可以做到这一点。一种方法是:

<select>用标签包围<form>并提交更改。

在您的控制器中:

public ActionResult Index(..., string role)
{
    //... rest of your code
    RegisterModel account = new RegisterModel();
    account.Roles = new MultiSelectList(Roles.GetAllRoles().Where(w => w.StartsWith(role)); 
    //... rest of your code
}
于 2011-09-26T08:20:26.533 回答