来自数据库的ASP.Net MVC 3 CheckBoxList

时间:2011-09-26 05:03:42

标签: asp.net-mvc checkboxlist

我有一张名为

的表格
tb_role
id  role
1   admin
2   user
3   viewer

并且View就像这样:

<div style="width:50%; float:right;">
    <legend>User Role</legend>
       <table>
        <tr>
         <th>Role</th>
        </tr>
        <tr>
         <td align="center"><input type="checkbox" id="CBRole"/></td>
        </tr>
       </table>
</div>

我想问一下,如何从我的表中列出我的复选框(CBRole)?所以我的CBRole列在我的桌子上。

非常感谢

修改

假设我有这样的角色表:

tb_role
RoleId  Role_Name
     1  SalesCreate
     2  SalesEdit
     3  AgentCreate
     4  AgentEdit

我想列出Sales的角色复选框(SalesCreate和SalesEdit,所以它只有2个checbox),怎么做? 谢谢

2 个答案:

答案 0 :(得分:0)

您可能希望在StackOverflow上看到以下帖子,Enum to CheckBox

答案 1 :(得分:0)

在控制器中,使用以下属性填充视图模型:

您的RoleViewModel

public IList<int> RolesSelected { get; set; }
public MultiSelectList Roles { get; set; }

来自处理Get调用的控制器(例如/ roles / edit / 1)

 model.RolesSelected = new List<int>();

 //here the code to populate the eventually already selected roles (update case)

 model.Roles = new MultiSelectList(repository.GetRoles(), "Id", "Name", model.SettoriSelected);

然后在你的视图中(在表单标签内)你会做这样的事情

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

在回答Post部分的控制器中,您将访问已选中ID的RolesSelected

在示例中我放了一个div,但是yuo可以将它改为你喜欢的东西。希望它有所帮助