以下代码无法编译
<ul>
<%
foreach( var row in SomeDataTable.Rows)
{
%>
<li>
<%= Html.ActionLink( row["field1"].ToString(), "action", new { } ) %>
</li>
<%
}v
%>
</ul>
错误是 - 无法将[]索引应用于'object'类型的表达式
var应该是隐式类型?
是什么给出了?
注意 - 我知道使用DataTable / Dataset等是不好的做法,所以如果你愿意,请把你的马放在那个上:)
答案 0 :(得分:3)
不应该是row["field1"]
而不是item["field1"]
吗?
答案 1 :(得分:2)
DataRowCollection不实现IEnumberable&lt; DataRow&gt;只有IEnumerable。你需要首先在你的foreach中调用SomeDataTable.Rows.Cast&lt; DataRow&gt;(),或者不要使用var,正如mxmissle建议的那样。
的IEnumerable&LT;&的DataRow GT;编译器需要知道枚举的类型,这是使用var。
所必需的答案 2 :(得分:0)
您需要使用
row["field1"]
而不是
item["field1"]
答案 3 :(得分:0)
调用item [“field1”]是否有事可做但是你将迭代器变量命名为“row”?
答案 4 :(得分:0)
将其转换为DataRow会发生什么?
(DataRow row in SomeDataTable.Rows)