【问题标题】:Error when use linq .any() in checkboxfor()在 checkboxfor() 中使用 linq .any() 时出错
【发布时间】:2013-08-02 10:41:35
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net-mvc linq


    【解决方案1】:

    更改您的 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,请在您的解决方案中添加一个。

    【讨论】:

    • 可行吗?因为我需要将它与 @foreach (var item in (ViewData["menu"] as IEnumerable)) 进行比较
    • 更改概览模型以包含您需要的布尔值
    • 我今天学到了一些东西:stackoverflow.com/questions/12674572/… - +1 以获得好的答案。
    • @PostureOfLearning,嗯,好的,你的话给了我一些想法,让我试着玩一下我的概述课,看看它是否可行
    • @retailcoder,是的,我确实检查了 SO 中的每个帖子是否存在问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多