Asp.net 操作员'<';无法应用于类型为';int';和';方法组';

Asp.net 操作员'<';无法应用于类型为';int';和';方法组';,asp.net,asp.net-mvc,generics,razor,Asp.net,Asp.net Mvc,Generics,Razor,我正试图构建一个如下所示的视图 对于我这样添加的模型 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 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:}
}
公共类UsrViewModel
{
公共IEnumerable系统用户{get;set;}
}
公共类用户
{            
公共int ID{get;set:}
公共bool isActive{get;set:}
公共字符串用户{get;set:}
公共字符串位置{get;set:}
公共字符串用户类型{get;set:}
公共字符串类型{get;set:}
public int UserOrder{get;set:}
公共bool可见{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>
@model ProjectName.ViewModels.UsrViewModel
@{
}
@使用(Html.BeginForm(“用户”、“示例”、FormMethod.Post))
{
...
@如果(型号!=null)
{
对于(int i=0;i
运算符“尝试使用:

  for (int i = 0; i < Model.SysUser.Count(); i++)
for(int i=0;i
您是否尝试使用ForEach()而不是For()?像这样:

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

</tr>

}
ForEach(var thisUser from Model.SysUser){
@thisUser.ID
....
}

视图中的模型是
SysUser
,但显示的模型是
UsrViewModel
(显示正确的代码)。那么什么是属性
DeviceSensors
?很抱歉提供了错误的详细信息,好的,我认为您是第一次编辑,假设模型确实是
@model UsrViewModel
,那么这是因为
SysUser
IEnumerable
(需要是
IList
IEnumerable
中没有
Count
属性,但有一个方法
Count()
因此,您可以尝试使用它,或者按照Stephen的建议将其转换为列表。因此,您建议更改
IEnumerabluenlikey以工作,因为OP有一个用于编辑的表单,因此属性必须是
IList
,才能在集合中生成表单控件。我不明白。IEnumerable有Count()方法。他使用Model.SysUser.Count作为循环条件,因此得到错误:“Operator'我是说,在OP的情况下,这不是解决方案-它会使错误消失,但当表单提交时,代码将永远无法绑定到模型(它不会解决任何问题)