我是Asp.net和MVC的新手。我试图编辑功能,但它给我一个错误 CS1061:'System.Collections.Generic.IEnumerable'不包含'Idx'的定义,并且没有扩展方法'Idx'接受类型'System.Collections.Generic.IEnumerable'的第一个参数可以找到(是你错过了使用指令或程序集引用?)
代码
@model IEnumerable<SealManagementPortal_3._0.Models.VOC_CUSTODIAN>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table>
<tr>
<th>
StaffID
</th>
<th>
Name
</th>
<th>
IC
</th>
<th>
Phone
</th>
<th>
Branch
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.StaffId)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.NRICNo)
</td>
<td>
@Html.DisplayFor(modelItem => item.MobileNo)
</td>
<td>
@Html.DisplayFor(modelItem => item.Branch)
</td>
<td>
@Html.ActionLink("Details", "Details", new { id=Model.Idx }) // error here
</td>
</tr>
}
</table>
答案 0 :(得分:2)
您仍在引用项枚举器。所以它需要 item 而不是 Model :
@Html.ActionLink("Details", "Details", new { id = item.Idx })
答案 1 :(得分:1)
您已尝试将actionlink的id属性设置为Model.Idx,但您的Model是VOC_CUSTODIAN对象的IEnumerable。您需要使用集合当前枚举器的Idx值。您只需将“模型”更改为“项目”,就像循环中的每个其他html控件一样:
@Html.ActionLink("Details", "Details", new { id= item.Idx })