【问题标题】:Operator '<' cannot be applied to operands of type 'int' and 'method group'运算符“<”不能应用于“int”和“方法组”类型的操作数
【发布时间】:2016-11-15 04:12:42
【问题描述】:

我正在尝试构建如下视图

对于我这样添加的模型

public class UsrViewModel
{
    public IEnumerable<User> SysUser { get; set; }
}

Public class User
{            
     public int ID {get; set:}
     public bool isActive {get; set:}
     public string user {get; set:}
     public string location {get; set:}
     public string usertype {get; set:}
     public string Type {get; set:}
     public int UserOrder {get; set:}
     public bool isVisible {get; set:}
}

然后我创建了如下所示的视图,但在这里我收到了以下错误

 @model ProjectName.ViewModels.UsrViewModel
    @{
    }
    <div class="content-page">

        <div class="content">
            <div class="container">
                <div class="row">
                    <div class="col-xs-12">
                        @using (Html.BeginForm("Users", "Sample", FormMethod.Post))
                        {
                                    <table class="table table-striped table-bordered" id="SysUser ">
                                        <tr>
                                           ...
                                        </tr>
                                        @if (Model != null)
                                        {
                                        for (int i = 0; i < Model.SysUser.Count; i++)
                                            {
                                            <tr>
                                                <td>
                                                    [i]
                                                </td>
                                                ....

                                            </tr>
                                            }
                                        }

                                    </table>

                                </div>
                                <div class="col-sm-offset-1 col-sm-11">
                                    <button type="submit" class="btn btn-purple waves-effect waves-light btn-wd-130">Save</button>
                                    <button type="submit" class="btn btn-default waves-effect waves-light btn-wd-130">Clear</button>
                                </div>                 
                        }
                    </div>
                    <!-- end row -->

                </div> 
            </div>

        </div>
    </div>

运算符“

在这一行for (int i = 0; i &lt; Model.SysUser.Count; i++)

【问题讨论】:

  • 您视图中的模型是SysUser,但您显示的模型是UsrViewModel(显示正确的代码)。 DeviceSensors 是什么属性?
  • 抱歉有错误的细节,我想现在可以了
  • 重新编辑,假设模型真的是@model UsrViewModel,那么因为SysUserIEnumerable&lt;User&gt;(它必须是IList&lt;User&gt;
  • Count 中没有 Count 属性 IEnumerable 但有一个方法 Count() 所以你可以尝试使用它 - 或者按照斯蒂芬的建议将其转换为列表
  • 所以你提议将IEnumerable&lt;'reUser&gt; SysUser 更改为IList&lt;User&gt; SysUser

标签: asp.net asp.net-mvc generics razor


【解决方案1】:

尝试:

  for (int i = 0; i < Model.SysUser.Count(); i++)

【讨论】:

  • 不太可能工作,因为 OP 有一个用于编辑的表单,因此该属性需要为 IList&lt;T&gt; 才能在集合中生成表单控件。
  • 我不明白。 IEnumerable 有 Count() 方法。并且他在 for 循环条件中使用 Model.SysUser.Count,因此出现错误:“运算符'
  • 我是说在 OP 的情况下,这不是解决方案 - 它会使错误消失,但是当提交表单时代码将永远无法绑定到模型(它不会解决任何问题)
【解决方案2】:

您是否尝试过使用 ForEach() 而不是 For()?像这样:

ForEach(var thisUser from Model.SysUser){
<tr>
      <td>
          @thisUser.ID
      </td>
      ....

</tr>

}

【讨论】:

    猜你喜欢
    • 2013-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 2011-12-31
    • 2022-01-07
    • 1970-01-01
    相关资源
    最近更新 更多