【问题标题】:Cannot detect which Submit Button is pressed无法检测到哪个提交按钮被按下
【发布时间】:2024-09-21 17:50:01
【问题描述】:

我的视图上有两种输入类型提交。

  1. <input type="submit" name="submitbutton1" value="Save">

2.<input type="submit" name="submitbutton2" value="Process">

我的视图是 Manage.vbhtml,在那个视图中我有一个带有上述两个提交按钮的表单。

我的控制器是 StaffController 和 'Function Manage(item as staff,submitbutton1 as string,submitbutton2 as string) as ActionResult' 与上述视图相关联。当我单击两个提交按钮中的任何一个时,我应该在字符串参数中获取该按钮的值,但它什么也没给我。请帮助我,我想检测按下了哪个提交按钮。提到的 actionresult 在属性中有<HttpPost> _

我按照this link关注了,但还是没有结果。

【问题讨论】:

  • 路由与它有什么关系吗?

标签: model-view-controller razorengine submit-button


【解决方案1】:

您可以通过FormCollection查看:

在 HTML 中:

<input type="submit" name="submitbutton" value="Save">
<input type="submit" name="submitbutton" value="Process">

在行动中:

[HttpPost]
public ActionResult Manage()
{

   var temp = Request.Form["submitbutton"].ToString();

   if(temp == "Save")
   {
     // save clicked
   }
   if(temp == "Process")
   {
     // Process clicked
   }

    return View();

}

或:

[HttpPost]
public ActionResult Manage(FormCollection form)
{

   var temp = form["submitbutton"].ToString();

   if(temp == "Save")
   {
     // save clicked
   }
   if(temp == "Process")
   {
     // Process clicked
   }

    return View();

}

【讨论】:

  • 谢谢,但还是没有运气。表单不包含名为“submitbutton”的键。同样的想法适用于我的另一个控制器及其方法,但不适用于此控制器和方法。
  • 确保按钮在表单内
  • 嘿伙计,我想我找到了问题所在。好吧,我将“员工”模型传递给该视图,并且它具有电子邮件 ID 作为属性之一。我对该属性使用了远程验证。验证正在工作,但它“返回 Json(True,JsonRequestBehavior.AllowGet)”,所以当我点击按钮时,它不会为“提交按钮”发送任何内容。我有机会修改我的验证码吗?
  • Okies 想出了解决方案 - 我应该将我的
最近更新 更多