MVC - 一个使用Ajax.BeginForm的表单的多个Html.SubmitImage按钮

时间:2010-11-06 09:29:59

标签: asp.net-mvc

ASP.NET MVC - Multiple Buttons on a Form

这也是我想要做的,除了第一个答案不满足我的要求,第二个答案使用formcollection。我没有通过formcollection。我将值传递给ActionResult方法,因为在我的场景中,使用formcollection没有多大意义,因为用户很难填写任何数据。

我现在更喜欢使用SubmitImage,所以如果您的解决方案不涉及我切换到CSS或输入类型等,我更愿意。

编辑:我正在使用Ajax.BeginForm,这似乎是问题,而不是Html.SubmitImage

1 个答案:

答案 0 :(得分:0)

确定按下哪个按钮(不使用Javascript)的唯一方法是检查浏览器在提交表单时发送的数据。这与用户是否填写表单没有任何关系,只与您对服务器的请求有关。

如果您在表单中使用POST方法,则会获得表单集合中按钮的名称,否则您将在查询字符串集合中获取该名称。

在按钮中,只有用于发布表单的按钮包含在数据中,因此您只需检查哪一个存在:

if (Request.Form["Save.x"] != null) {
  // the save button was used
} else if (Request.Form["Delete.x"] != null) {
  // the delete button was used
} else if (Request.Form["Publish.x"] != null) {
  // the publish button was used
} else if (Request.Form["Cancel.x"] != null) {
  // the cancel button was used
} else {
  // you got here some other way
}