div*_*vya 3 indexing asp.net-mvc foreach razor
我正在开发一个Asp.net MVC应用程序,并遇到了一个场景,我必须在两列中显示内容(即并排)我googled并在这里遇到了一个解决方案.我试过但徒劳无功.我试过这种方式
@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>
Run Code Online (Sandbox Code Playgroud)
但是我收到了编译错误 - 编译错误
描述:编译服务此请求所需的资源时发生错误.请查看以下特定错误详细信息并相应地修改源代码.
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:
Run Code Online (Sandbox Code Playgroud)
有谁可以帮我解决这个问题?
Chr*_*att 11
简单地说,您无法索引可枚举的内容.它被设计为按顺序一次吐出一个项目,而不是堆栈中任何位置的特定项目.最简单的解决方案是将其转换为List:
@{
var tblTestList = Model.ToList();
for (var i = 0; i < tblTestList.Count(); i+=2 )
{
<tr>
<td>
@tblTestList[i].testId
</td>
</tr>
}
}
Run Code Online (Sandbox Code Playgroud)
甚至更简单:
@model List<MvcApplication1.tblTest>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8048 次 |
| 最近记录: |