ASP.NET MVC Return 从视图到操作方法的模型

ASP.NET MVC Return Model From View To Action Method

我一直在寻找与此类似的其他问题,但我似乎无法找到解决此问题的方法。我的视图被传递到我在 table 中列出的 tAdminAlert 对象列表中。我想要 table 中每一行旁边的删除按钮重定向到我的控制器中的 Delete(tAdminAlert obj) 操作方法,并传入与他们单击的行对应的对象。

我的控制器称为 AdminAlerts 并具有此操作方法:

public ActionResult Delete(tAdminAlerts obj) {

  // Want to call delete method on obj here

  return View("Index");
}

我的观点是这样的


@model List<tAdminAlerts>
@{
    ViewData["Title"] = "Alerts";
}

@{
    ViewBag.Title = "Alerts";
}

<div style="width:60%;display:table">
    <table>
        <thead>
            <tr>
                <th>Full Name</th>
                <th>Email</th>
                <th>Dept. Number</th>
                <th>Dept. Code</th>
            </tr>
        </thead>

        <tbody>
            @foreach (var obj in Model) {
            <tr>
                <td width="35%">
                    @obj.nameFull
                </td>
                <td width="25%">
                    @obj.emailAddress
                </td>
                <td width="20%">
                    @obj.departmentNumber
                </td>
                <td width="20%">
                    @obj.departmentCode
                </td>
                <td>
                 * Want delete button to go here and return @obj 
                   to Delete action method of controller *
                </td>
            </tr>
            }
        </tbody>
    </table> 
</div>

如有任何帮助,我将不胜感激。谢谢!

您不需要整个对象

public ActionResult Delete(tAdminAlerts obj)

您只需要一个 标识符 来表示要删除的记录,然后您将使用它来删除数据中的该记录:

public ActionResult Delete(int id)

然后您可以为该操作创建一个简单的 link。 ASP.NET MVC 的不同版本可能略有不同,但通常您可以使用 link 文本、操作名称、(可选)控制器名称和路由值创建一个 Action Link。例如:

@Html.ActionLink("Delete", "Delete", new { id = obj.id })

(我假设视图中 obj 上的标识符称为 id,使用您想要使用的任何标识符。)

这只会创建一个简单的 link 供用户点击以将他们带到该 Delete 操作。