加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何将索引应用于IEnumerable表达式类型并在剃刀

发布时间:2020-12-16 09:17:24 所属栏目:asp.Net 来源:网络整理
导读:我正在开发一个 Asp.net MVC应用程序,遇到了一个场景,我必须在两列中显示内容(即并排)我用Google搜索并在这里找到了解决方案.我试过但徒劳无功. 我试过这种方式 @model IEnumerableMvcApplication1.tblTest@{ViewBag.Title = "Index";Layout = "~/Views/Shar
我正在开发一个 Asp.net MVC应用程序,遇到了一个场景,我必须在两列中显示内容(即并排)我用Google搜索并在这里找到了解决方案.我试过但徒劳无功.
我试过这种方式

@model IEnumerable<MvcApplication1.tblTest>

@{

ViewBag.Title = "Index";

Layout = "~/Views/Shared/_Layout.cshtml";

}

<h2>Index</h2>


<table>
    <tr>
    <th>
        testId
    </th>
    <th>
        testName
    </th>
    <th>
        testDescription
    </th>
    <th></th>
</tr>

@for (var i = 0; i < Model.Count(); i+=2 )
{
<tr>
    <td>
       @Model[i].testId
    </td>


</tr>
}

</table>

但是我收到了编译错误 –
编译错误

描述:编译服务此请求所需的资源时发生错误.请查看以下特定错误详细信息并相应地修改源代码.

Compiler Error Message: CS0021: Cannot apply indexing with [] to an expression of type       

'System.Collections.Generic.IEnumerable<MvcApplication1.tblTest>'

Source Error:


Line 27:     <tr>
Line 28:         <td>
Line 29:            @Model[i].testId
Line 30:         </td>
Line 31:

有谁可以帮我解决这个问题?

解决方法

简单地说,您无法索引可枚举的内容.它被设计为按顺序一次吐出一个项目,而不是堆栈中任何位置的特定项目.最简单的解决方案是将其转换为List:

@{
    var tblTestList = Model.ToList();
    for (var i = 0; i < tblTestList.Count(); i+=2 )
    {
        <tr>
            <td>
                @tblTestList[i].testId
            </td>
        </tr>
    }
}

甚至更简单:

@model List<MvcApplication1.tblTest>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读