0

所以我使用数据库优先和实体框架方法创建了 MVC 4 应用程序。我创建了各自的模型、控制器和视图(通过使用实体框架模板添加具有读/写操作和视图的 MVC 控制器)。因此它带有创建、删除、编辑、索引和详细信息视图以及相应的操作方法。 在此处输入图像描述

当我单击详细信息、编辑或删除时,我看到作为操作方法中的参数的位置 id 未通过值传递,因此仅使用默认值 0。我了解到,使用 HttpGet 我们需要将其作为查询字符串传递给 URL,但在我的情况下,如何隐式传递位置 ID 以进行编辑/详细信息或删除。

4

2 回答 2

2

你这样做:

看法:

foreach (var item in Model)
{
    <tr>
        <td>
            @Html.ActionLink("Edit", "EditAction", new {id = item._account})
        </td>
        <td>
            @Html.ActionLink("Details", "DetailsAction", new {id = item._account})
        </td>
        <td>
            @Html.ActionLink("Delete", "DeleteAction", new {id = item._account})
        </td>
   </tr>

}

控制器:

    //
    // GET: /Controller/EditAction/id 
    public ActionResult EditAction(int id)
    {
         //Do Something
    }

    //
    // GET: /Controller/DetailsAction/id 
    public ActionResult DetailsAction(int id)
    {
         //Do Something
    }

    //
    // GET: /Controller/DeleteAction/id 
    public ActionResult DeleteAction(int id)
    {
            //Do Something
    }
于 2013-07-23T07:15:23.227 回答
0

列表视图模板的链接是使用@Html.ActionLink 创建的,对吗?如果是这样,它们必须分别包含它们打算明确指向的项目 ID,因此它们应该类似于 @Html.ActionLink("Edit", new {id=item.Id})) 如果您使用默认路由。

顺便说一句,我很惊讶这些链接在列表模板中默认不包含正确的 ID 设置。

于 2013-07-23T07:23:20.370 回答