0

我有这样的看法:

@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 开发人员。

4

1 回答 1

3

传入的参数名称必须与名称匹配,所以既然你的名字是Delete:

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

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

[HttpPost]
public ActionResult RemoveContact(String Delete)

变量 Delete 的值为@ec.ContactGuidon click。

于 2015-08-16T01:28:47.470 回答