2010-10-26 3 views

Répondre

6

L'appel de différentes actions n'est pas possible sans javascript. Vous pouvez appeler la même action du contrôleur et à l'intérieur de cette action de déterminer quel bouton a été pressé en utilisant la propriété du nom:

<% using (Html.BeginForm()) { %> 
    <input type="submit" name="save" value="Save" /> 
    <input type="submit" name="update" value="Update" /> 
<% } %> 

et dans votre action de contrôleur:

[HttpPost] 
public ActionResult Index(string save) 
{ 
    if (!string.IsNullOrEmpty(save)) 
    { 
     // the save button was pressed 
    } 
    else 
    { 
     // the update button was pressed 
    } 
    return View(); 
} 
3

Bien sûr, il y a! par exemple, nous avons forme suivante:

<form> 
<input name='customer_name' type='text'/> 
<input name='update_user' type='submit' value='Update user info'/> 
<input name='delete_user' type='submit' value='Delete user'/> 
</form> 

lorsque le serveur reçoit la demande de formulaire, il existe un seul paramètre dans la collection: soit update_user ou delete_user. dépend de ce que l'utilisateur a appuyé.

+0

pertinent, mais pas pour le asp.net mvc – dvhh

+0

Je pense que vous devez modifier votre message et montrer comment distinguer l'un de l'autre dans le code côté serveur. La réponse est seulement la moitié de ce que la question demande. – awrigley

4

Donnez aux boutons différents attributs de nom. Ensuite, dans votre gestionnaire de vue (ou équivalent - désolé, pas une personne ASP.NET MVC), vous pouvez vérifier si le nom de ce bouton est dans la réponse HTTP et agir en conséquence.

Un seul des noms de bouton de soumission doit exister dans la réponse.

Questions connexes