CheckBoxList ASP.Net MVC 3 из базы данных

предположил, что у меня есть таблица ролей:

tb_role
RoleId  Role_Name
     1  SalesCreate
     2  SalesEdit
     3  AgentCreate
     4  AgentEdit

я хочу указать роль для продаж в флажке (SalesCreate и SalesEdit, поэтому у него только 2 флажка). Я сделал свою tb_role, используя конфигурацию aspnet, поэтому она не использует сущности.

здесь мой контроллер:

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). как это сделать ?

большое спасибо


person ntep vodka    schedule 26.09.2011    source источник


Ответы (1)


Пара способов сделать это. Один из способов таков:

Окружите <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
}
person mnsr    schedule 26.09.2011