Création d’une action (VB)
par Microsoft
Découvrez comment ajouter une nouvelle action à un contrôleur MVC ASP.NET. Découvrez les conditions requises pour qu’une méthode soit une action.
L’objectif de ce tutoriel est d’expliquer comment créer une action de contrôleur. Vous découvrirez les exigences d’une méthode d’action. Vous découvrez également comment empêcher une méthode d’être exposée en tant qu’action.
Ajout d’une action à un contrôleur
Vous ajoutez une nouvelle action à un contrôleur en ajoutant une nouvelle méthode au contrôleur. Par exemple, le contrôleur de la liste 1 contient une action nommée Index() et une action nommée SayHello(). Les deux méthodes sont exposées sous forme d’actions.
Listing 1 - Controllers\HomeController.vb
<HandleError()> _
Public Class HomeController
Inherits System.Web.Mvc.Controller
Function Index() As ActionResult
Return View()
End Function
Function SayHello() As String
Return "Hello!"
End Function
End Class
Pour être exposée à l’univers en tant qu’action, une méthode doit répondre à certaines exigences :
- La méthode doit être publique.
- La méthode ne peut pas être une méthode statique.
- La méthode ne peut pas être une méthode d’extension.
- La méthode ne peut pas être un constructeur, getter ou setter.
- La méthode ne peut pas avoir de types génériques ouverts.
- La méthode n’est pas une méthode de la classe de base du contrôleur.
- La méthode ne peut pas contenir de paramètres ref ou out .
Notez qu’il n’existe aucune restriction sur le type de retour d’une action de contrôleur. Une action de contrôleur peut retourner une chaîne, un DateTime, un instance de la classe Random ou void. L’infrastructure MVC ASP.NET convertit tout type de retour qui n’est pas un résultat d’action en chaîne et affiche la chaîne dans le navigateur.
Lorsque vous ajoutez une méthode qui ne respecte pas ces exigences à un contrôleur, la méthode est exposée en tant qu’action de contrôleur. Soyez prudent ici. Une action de contrôleur peut être appelée par toute personne connectée à Internet. Ne créez pas, par exemple, une action de contrôleur DeleteMyWebsite().
Empêcher l’appel d’une méthode publique
Si vous devez créer une méthode publique dans une classe de contrôleur et que vous ne souhaitez pas exposer la méthode en tant qu’action de contrôleur, vous pouvez empêcher l’appel de la méthode à l’aide de l’attribut <NonAction> . Par exemple, le contrôleur dans Listing 2 contient une méthode publique nommée CompanySecrets() qui est décorée avec l’attribut <NonAction> .
Liste 2 - Controllers\WorkController.vb
Public Class WorkController
Inherits System.Web.Mvc.Controller
_
Function CompanySecrets() As String
Return "This information is secret."
End Function
End Class
Si vous tentez d’appeler l’action du contrôleur CompanySecrets() en tapant /Work/CompanySecrets dans la barre d’adresse de votre navigateur, vous obtiendrez le message d’erreur de la figure 1.
Figure 01 : Appel d’une méthode NonAction(Cliquez pour afficher une image en taille réelle)