2013-08-02 20 views
1

模板只能与字段访问,属性访问,单维数组索引或单参数自定义索引器表达式一起使用。在checkboxfor()中使用linq .any()时出错()

我已经通过谷歌搜索,并不能找到更好的方法来解决这个问题,我想做一个检查,如果数据存在表中,然后设置为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> 

回答

3

更改overview视图模型包括,例如:

public bool AccessRightsExist {get;set;} 

然后在您的控制器将其设置:

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

和最后一个,你的观点将被:

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

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

+0

它可行吗?因为我需要将它与@foreach(ViewData [“menu”]中的var项目作为IEnumerable )) – Se0ng11

+0

进行比较还是我这样做都是错误的? – Se0ng11

+2

更改概览模型以包含您需要的布尔值 – PostureOfLearning