在checkboxfor()中使用linq .any()时出错

时间:2013-08-02 02:24:04

标签: asp.net-mvc linq

模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式。

我通过谷歌搜索,并且无法找到更好的解决方法,我想检查数据是否存在于表中,然后设置为true,否则设置为false,是否有任何地方可以使其工作?如果没有办法使用linq使其工作,我能想到的是使用jquery ajax来填充表

<tbody>
       @foreach (var item in (ViewData["menu"] as IEnumerable<overview>))
       {
           <tr>
           <td>@Html.CheckBoxFor(model=>model.AccessRights.Where(m=> m.mcd ==item.mcd && m.ise=="Y").Any())
           </tr>
       }
</tbody>

1 个答案:

答案 0 :(得分:3)

overview ViewModel更改为包含例如:

public bool AccessRightsExist {get;set;}

然后在您的控制器中设置它:

overviewModel.AccessRightsExist = dbContext.AccessRights.Where(m=> m.ise=="Y").Any();

最后,您的观点将是:

<td>@Html.CheckBoxFor(model=>item.AccessRightsExist)</td>

如果您没有ViewModel,请在解决方案中添加一个。