剃刀集合中的按钮,控制器无法看到按钮值

时间:2015-08-16 01:20:31

标签: c# .net razor asp.net-mvc-5 htmlbutton

我有一个剃刀的观点:

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

1 个答案:

答案 0 :(得分:3)

传入的参数名称必须与名称匹配,因此您的名称为Delete:

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

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

[HttpPost]
public ActionResult RemoveContact(String Delete)

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