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的情况下,这不是解决方案-它会使错误消失,但当表单提交时,代码将永远无法绑定到模型(它不会解决任何问题)