在单个表单中使用两个提交按钮

Pra*_*sad 5 asp.net-mvc formcollection

我的asp.net mvc(C#)应用程序中有一个带有两个提交按钮的表单.当我单击任何提交按钮时Google Chrome,默认情况下,提交按钮的值是第一个提交按钮的值.

这是html:

 <input type="submit" value="Send" name="SendEmail" />
 <input type="submit" value="Save As Draft" name="SendEmail" />
 <input type="button" value="Cancel" />
Run Code Online (Sandbox Code Playgroud)

当我单击Save As Draft按钮时,在控制器的操作中,它将获得"发送"作为值SendEmail.

这是行动:

public ActionResult SendEmail(string SendEmail, FormCollection form)
 {
       if(SendEmail == "Send")
       {
          //Send Email
       }
       else
       {
          //Save as draft
       }
       return RedirectToAction("SendEmailSuccess");
 }
Run Code Online (Sandbox Code Playgroud)

当我从FormCollection获取值时,它显示"发送".即form["SendEmail"]给出Send

我需要做什么才能获得点击提交按钮的实际值?

小智 7

显示此页面.

ASP.NET MVC - 同一形式的多个按钮 - David Findley的博客

创建ActionMethodSelectorAttribute继承类.


Dar*_*rov 5

试试这个:

<input type="submit" value="Send" name="send" />
<input type="submit" value="Save As Draft" name="save" />
Run Code Online (Sandbox Code Playgroud)

和:

public ActionResult SendEmail(string send, FormCollection form)
{
    if (!string.IsNullOrEmpty(send))
    {
        // the Send button has been clicked
    } 
    else
    {
        // the Save As Draft button has been clicked
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 -3

解决方法:使用 javascript 提交表单而不是提交按钮