MVC - 在表单帖子上获取按钮ID

时间:2011-03-08 17:03:07

标签: .net asp.net-mvc

我有一个带有多个按钮的表单。在帖子上,我想获得实际按下的按钮的ID。

因此,例如,如果按下按钮#2,我需要能够访问此按钮的ID,然后删除itemid 2:

<button name="button" value="DeletePollAnswer" id="Delete1">Delete</button>
<button name="button" value="DeletePollAnswer" id="Delete2">Delete</button>

这可能吗?你会如何在控制器中做到这一点?

由于

2 个答案:

答案 0 :(得分:1)

听起来你是以错误的方式解决这个问题,通常在提交表单时它是键值对,键是元素name属性,值是元素value属性。如果你需要区分我会在那里做。

IE:

<button name="Delete1" value="DeletePollAnswer" id="Delete1">Delete</button>
<button name="Delete2" value="DeletePollAnswer" id="Delete2">Delete</button>

对于MVC,您可能希望链接能够调用特定操作或将数据传递给特定操作,在这种情况下,具有操作链接的锚应该直接调用特定操作。

IE:

<%= Html.ActionLink("Delete Poll Answer", "SomeDeleteAction", "SomePollController", new { pollID = somePollIDValue }, null); %>

当然在这个例子中,所有的名字都是完全胡言乱语,你会想要用你的控制器/动作/参数等代替。

答案 1 :(得分:0)

查看:

<script language="javascript" type="text/javascript">
    function SubmitForm(id)
    {
        document.forms[0].action = 'ActionName/' + id;
        document.forms[0].submit();
    }
</script>
<% Html.BeginForm("", "", FormMethod.Post); %>
<input id="btn1" type="button" value="Ok" onclick="javascript:SubmitForm('btn1')" />
<input id="btn2" type="button" value="Cancel" onclick="javascript:SubmitForm('btn2')" />
<% Html.EndForm(); %>

<强>控制器:

public ActionResult ActionName(string id)
{
    if (id == "btn1")
        //Exec(xxx);
    else
        //Exec(yyy);
        return View();
}