首页 新闻 会员 周边

MVC中提交保存怎么传递Model,求解。

-1
悬赏园豆:10 [已解决问题] 解决于 2012-09-10 11:01
    public class UserRoleViewModel
    {
        [Required( ErrorMessage = "用户组名不能为空")]
        [Remote("CheckRoleNameExists", "User", ErrorMessage = "用户账号已存在")]
        public string RoleName { get; set; }

        [Required(ErrorMessage = "请选择权限列表")]
        public List<Permission> Permissions { get; set; }
    }

我在页面中添加了一个强类型的Model-如上代码所示。

然后我在View中显示:

                @foreach (Permission permission in Model.Permissions)
                {
                    <tr>
                        <td>
                            @*<input type="checkbox" class="checkbox" value="@permission.ID" name="PermissionIDs"/>*@
                            @Html.CheckBox("PermissionIDs", false, new { @class = "checkbox",@value=permission.ID })
                            
                        </td>
                        <td>
                            <h3>
                                <a href="#">@permission.Name</a>
                                
                            </h3>
                        </td>
                    </tr>
                }

现在我提交表单,怎么把CheckBox也传递过去了,能不能直接包含在上面的Model的List<Permission>中呢。

 

谢谢各位。 

Dhoopu的主页 Dhoopu | 初学一级 | 园豆:10
提问于:2012-09-09 23:10
< >
分享
最佳答案
1
Permissions需要一个布尔值类型的属性

@for (int i = 0;xxxxxxxxx)
{
  <tr>
    <td>
      
@Html.CheckBoxFor(Model.Permissions[i].布尔值类型的属性, new { @class = "checkbox",value=permission.ID })
    </td>
    <td> <h3> <a href="#">@permission.Name</a></h3>
    </td>
  </tr>
}

重点是这里
@Html.CheckBoxFor(Model.Permissions[i], new { @class = "checkbox",@value=permission.ID }) 

裸写的,你自己改改.
收获园豆:8
zhangweiwen | 小虾三级 |园豆:904 | 2012-09-10 10:10

嗯,谢谢你。昨天我是加了一个。

@Html.CheckBoxFor(Model.Permissions[i].布尔值类型的属性这样的写法,但是这个选项勾选后不知道为什么过去的总是false,能不能麻烦你再给提点建议呢,谢谢。
Dhoopu | 园豆:10 (初学一级) | 2012-09-10 10:18
其他回答(1)
0
改成public List<string> Permissions { get; set; }就可以接收了。
收获园豆:2
向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-10 02:30

谢谢你。

支持(0) 反对(0) Dhoopu | 园豆:10 (初学一级) | 2012-09-10 11:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册