MVC which submit button has been pressed MVC which submit button has been pressed asp.net asp.net

MVC which submit button has been pressed


Name both your submit buttons the same

<input name="submit" type="submit" id="submit" value="Save" /><input name="submit" type="submit" id="process" value="Process" />

Then in your controller get the value of submit. Only the button clicked will pass its value.

public ActionResult Index(string submit){    Response.Write(submit);    return View();}

You can of course assess that value to perform different operations with a switch block.

public ActionResult Index(string submit){    switch (submit)    {        case "Save":            // Do something            break;        case "Process":            // Do something            break;        default:            throw new Exception();            break;    }    return View();}


<input name="submit" type="submit" id="submit" value="Save" /><input name="process" type="submit" id="process" value="Process" />

And in your controller action:

public ActionResult SomeAction(string submit){    if (!string.IsNullOrEmpty(submit))    {        // Save was pressed    }    else    {        // Process was pressed    }}


this is a better answer, so we can have both text and value for a button:

http://weblogs.asp.net/dfindley/archive/2009/05/31/asp-net-mvc-multiple-buttons-in-the-same-form.aspx

</p><button name="button" value="register">Register</button><button name="button" value="cancel">Cancel</button></p>

and the controller:

public ActionResult Register(string button, string userName, string email, string password, string confirmPassword){if (button == "cancel")    return RedirectToAction("Index", "Home");...

in short its a SUBMIT button but you choose the name using the name attribute, its even more powerful because your not obligated to the name submit or button in the controller method parameters, you can call it as you like...