假设我有这样的角色表:
tb_role
RoleId Role_Name
1 SalesCreate
2 SalesEdit
3 AgentCreate
4 AgentEdit
我想列出Sales的角色复选框(SalesCreate和SalesEdit,因此它只有2个checbox)。我使用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)。怎么做?
非常感谢
答案 0 :(得分: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
}