我有一个带有多个按钮的表单。在帖子上,我想获得实际按下的按钮的ID。
因此,例如,如果按下按钮#2,我需要能够访问此按钮的ID,然后删除itemid 2:
<button name="button" value="DeletePollAnswer" id="Delete1">Delete</button>
<button name="button" value="DeletePollAnswer" id="Delete2">Delete</button>
这可能吗?你会如何在控制器中做到这一点?
由于
答案 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();
}