2011-09-26 106 views
1

假设我有角色表是这样的:CheckBoxList的ASP.Net MVC 3,从数据库

tb_role 
RoleId Role_Name 
    1 SalesCreate 
    2 SalesEdit 
    3 AgentCreate 
    4 AgentEdit 

我想列出的复选框销售的作用(SalesCreate和SalesEdit,所以它只有2个checboxes)。我使用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

哪里是CD的答案吗? –

回答

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 
} 
+0

感谢rudeovski回答我的问题。它帮助了我 –