运算符“<”不能应用于“int”和“方法组”类型的操作数
Posted
技术标签:
【中文标题】运算符“<”不能应用于“int”和“方法组”类型的操作数【英文标题】:Operator '<' cannot be applied to operands of type 'int' and 'method group' 【发布时间】: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 < Model.SysUser.Count; i++)
【问题讨论】:
您视图中的模型是SysUser
,但您显示的模型是UsrViewModel
(显示正确的代码)。 DeviceSensors
是什么属性?
抱歉有错误的细节,我想现在可以了
重新编辑,假设模型真的是@model UsrViewModel
,那么因为SysUser
是IEnumerable<User>
(它必须是IList<User>
Count
中没有 Count
属性 IEnumerable
但有一个方法 Count()
所以你可以尝试使用它 - 或者按照斯蒂芬的建议将其转换为列表
所以你提议将IEnumerable<'reUser> SysUser
更改为IList<User> SysUser
?
【参考方案1】:
尝试:
for (int i = 0; i < Model.SysUser.Count(); i++)
【讨论】:
不太可能工作,因为 OP 有一个用于编辑的表单,因此该属性需要为IList<T>
才能在集合中生成表单控件。
我不明白。 IEnumerable 有 Count() 方法。并且他在 for 循环条件中使用 Model.SysUser.Count,因此出现错误:“运算符'
我是说在 OP 的情况下,这不是解决方案 - 它会使错误消失,但是当提交表单时代码将永远无法绑定到模型(它不会解决任何问题)【参考方案2】:
您是否尝试过使用 ForEach() 而不是 For()?像这样:
ForEach(var thisUser from Model.SysUser)
<tr>
<td>
@thisUser.ID
</td>
....
</tr>
【讨论】:
以上是关于运算符“<”不能应用于“int”和“方法组”类型的操作数的主要内容,如果未能解决你的问题,请参考以下文章
运算符 '!=' 不能应用于类型为 'Task' 和 'int' 的操作数
运算符'> ='不能应用于'string'和'int'类型的操作数[重复]
二元运算符 % 不能应用于 UInt32 和 int 类型的操作数
NSError 代码检查:二元运算符“==”不能应用于两个 Int 操作数