在剃刀视图上递增时出现编译错误

Posted

技术标签:

【中文标题】在剃刀视图上递增时出现编译错误【英文标题】:Compilation Error when incrementing on a razor View 【发布时间】:2021-07-27 10:52:41 【问题描述】:

我正在尝试增加剃刀视图,但“计数”给了我以下错误,我添加了@using System.Linq;,但我仍然遇到同样的错误。请协助。 编译器错误信息:

CS1061:“int”不包含“Count”的定义,并且没有扩展方法“Count”接受“int”类型的第一个参数 可以找到(您是否缺少 using 指令或程序集 参考?)

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

    var item = Model.Number[i];
    @html.DisplayFor(model => item.Number, new 
     
        htmlAttributes = new  @class = "form-control"  
    )                            



    /// <summary>
    ///  Number
    /// </summary>
    [DisplayName("Number")]
    public int Number  get; set; 

【问题讨论】:

你不能迭代一个整数。它是一个单一的值。它的值始终为 1。Count() 仅适用于集合。在事情上,你实际上可以数数。 整数不能使用.Count(),只有IEnumerable支持.Count() 请注意Model.Number[i] 这也会出错。正如您所提到的 (Model.Number) 是一个整数。 因此,您在模型中放置了一系列数字,并且只想遍历所有数字并将它们打印为表单控件,是吗? 您视图顶部的@model 指令说明了什么? @model IEnumerable&lt;int&gt;? 【参考方案1】:

因为你的模型是这样的:

public class Model

    public int Numberget;set;

而你想显示数字+1,你可以使用:

@Model.Number + 1

【讨论】:

【参考方案2】:

大家好,谢谢大家,我通过以下操作解决了这个问题。不需要 for 循环。

   var Number = Model.Number + 1;
   @Html.DisplayFor(model => Number, new  htmlAttributes = new  @class = "form-control"  )

【讨论】:

以上是关于在剃刀视图上递增时出现编译错误的主要内容,如果未能解决你的问题,请参考以下文章

在 raspbian 上构建时出现 gcc 编译器错误

使用 fpc 编译+组装时出现“数据元素太大”错误(在 OSX 上)

Swift:从 iOS 7 编译存档时出现分段错误

编译时出现 Ibm MobileFirst Linker 错误

在集群上安装 R 包时出现奇怪的 C 编译器错误

使用 Perl64 在 Windows 7(64 位)上构建 BerkeleyDB 时出现编译/链接错误