< form action="<%= Url.Action("Update", new {id=ViewData["id"]}) %>" method="post">
< input type="submit" name="Apply" value="Appliquer" />
< input type="submit" name="FinishLater" value="Finir plus tard" />
</ form >
[ActionName("Update"), AcceptVerbs(HttpVerbs.Get)]
public ActionResult Edit(string id)
{
// Affiche le formulaire d'édition vide
}
[ActionName("Update"), AcceptVerbs(HttpVerbs.Post)]
public ActionResult Update(string id)
if (ControllerContext.HttpContext.Request.Form["Apply"] != null)
// Code pour le premier bouton
return UpdateNow(id);
else if (ControllerContext.HttpContext.Request.Form["FinishLater"] != null)
// Code pour l'autre bouton
return UpdateLater(id);
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class AcceptButtonAttribute : ActionMethodSelectorAttribute
private string name;
public AcceptButtonAttribute(string name)
: base()
this.name = name;
public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
return controllerContext.HttpContext.Request.Form[name] != null;
[ActionName("Update"), AcceptVerbs(HttpVerbs.Post), AcceptButton("Apply")]
public ActionResult UpdateNow(string id)
[ActionName("Update"), AcceptVerbs(HttpVerbs.Post), AcceptButton("FinishLater")]
public ActionResult UpdateLater(string id)