2011-03-08 36 views
2

我有一个带有多个按钮的表单。在发布后,我想获得实际按下的按钮的ID。MVC - 在表单上获取按钮ID

因此,举例来说,如果按键#2之后,我需要能够访问ID为这个按钮,然后删除的itemid 2:

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

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

感谢

+0

你应该看看这个答案 - http://stackoverflow.com/questions/442704/how-do-you-handle-multiple-submit-buttons-in-asp-net-mvc-framework/442762# 442762 – JasCav

回答

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); %> 

当然在示例中,所有的名字都完全胡言乱语,你想与你的控制器/动作替换/ PARAMS等

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(); 
}