剃须刀集合中的按钮,控制器看不到按钮值

button in razor collection, the controller can't see the button value

我有一个剃刀般的观点:

@using (Html.BeginForm("RemoveContact", "MyContacts"))
{ 
    <table>
        @foreach (MyProject.Models.MyContacts.ExistingContact ec in Model.ExistingContacts)
        {
        <tr>
            <td>@ec.FirstName</td>
            <td>@ec.LastName</td>
            <td>@ec.Relationship</td>
            <td>@ec.Phone</td>
            <td>@ec.Email</td>
            <td>
                <button type="submit" name="Delete" id="Delete" value="@ec.ContactGuid">Delete</button>
            </td>
        </tr>
            }
    </table>
}

基本上我有一个联系人列表,我想在每个联系人旁边放一个允许他们删除的按钮。在同一页面上有一个表单,允许他们添加新联系人(效果很好)。

但是在我调用的控制器中,字符串参数显示为 null。我希望它是按钮的值属性 (@ec.ContactGuid).

[HttpPost]
public ActionResult RemoveContact(String contactGuid)
{
    return Redirect("/MyContacts/");
}

1) 有办法解决这个问题吗?

2) 是否有一些我完全缺少的更好的范例?我是一名新的 MVC 开发人员。

传入的参数名称必须与名称匹配,所以由于您的名称是删除:

<button type="submit" name="Delete" ..

删除必须是参数的名称,而不是值;在这种情况下,执行以下操作:

[HttpPost]
public ActionResult RemoveContact(String Delete)

变量 Delete 将在单击时具有 @ec.ContactGuid 的值。