2

我是 Asp.net 和 MVC 的新手。我试图做编辑功能,但它给我一个错误。
CS1061:“System.Collections.Generic.IEnumerable”不包含“Idx”的定义,并且找不到接受“System.Collections.Generic.IEnumerable”类型的第一个参数的扩展方法“Idx”(您是否缺少使用指令还是程序集引用?)

代码

@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>
4

2 回答 2

2

您仍在引用项目枚举器。所以它需要是item而不是Model

 @Html.ActionLink("Details", "Details", new { id = item.Idx })
于 2012-06-14T05:53:12.950 回答
1

您尝试将 actionlink 的 id 属性设置为 Model.Idx,但您的模型是 VOC_CUSTODIAN 对象的 IEnumerable。您需要使用集合当前枚举器的 Idx 值。您只需将“模型”更改为“项目”,就像循环中的所有其他 html 控件一样:

@Html.ActionLink("Details", "Details", new { id= item.Idx })
于 2012-06-14T05:59:28.530 回答