40 votes

ASP .NET MVC NonAction Signification

Quelqu'un peut-il me dire pourquoi je devrais utiliser NonAction ? Je veux dire que j'ai un formulaire avec plusieurs valeurs de soumission : Mettre à jour, Supprimer ou Insérer. Puisque tous les boutons de soumission ont la même forme en commun, je commute la valeur de soumission à l'intérieur du contrôleur et j'agis en conséquence.

Comme ceci :

public ActionResult asd(string submitButton){
     switch(submitButton){
         case "Insert":
             return Insert();
         // bla bla bla
     }
}

[NonAction]
public ActionResult Insert(){
    // some code inside here
    return View();
}

Encore une fois, pourquoi devrais-je utiliser NonAction au lieu de quelque chose comme ceci :

public void Insert(){
    // some code inside here
}

13voto

Taudris Points 515

Il convient de noter que la nécessité d'utiliser [NonAction] ne s'applique qu'aux méthodes publiques. Les méthodes protégées et privées ne sont pas traitées comme des actions. Puisque vos méthodes Update/Delete/Insert sont des aides pour asd(), une méthode privée serait plus appropriée pour votre scénario :

public ActionResult asd(string submitButton){
    switch(submitButton){
        case "Insert":
            return Insert();
        // bla bla bla
    }
}

ActionResult Insert(){
    // some code inside here
}

5voto

devprog Points 285

Si vous n'utilisez pas l'attribut [NonAction], quelqu'un peut appeler votre action directement au lieu d'avoir à passer par la fonction 'asd'

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X