Developpez.com - Microsoft DotNET
X

Choisissez d'abord la catégorieensuite la rubrique :


Créer une action MVC

Date de publication : 22 avril 2009

Par Lainé Vincent (Traduction) (autres articles)
 

Le but de ce tutoriel est de montrer comment créer une nouvelle action de contrôleur. Vous apprendrez quels sont les pré-requis d'une action. Vous apprendrez également comment vous empêcher qu'une méthode ne soit exposer comme action dans un contrôleur.

               Version PDF (Miroir)   Version hors-ligne (Miroir)

Traduction
B. Ajouter une action à un contrôleur
C. Empêcher une méthode publique d'être une action


Traduction

Cet article est la traduction la plus fidèle possible de l'article original : en Creating an Action


B. Ajouter une action à un contrôleur

Pour ajouter une nouvelle action à un contrôleur il suffit d'ajouter une nouvelle méthode à une classe héritant de la classe Controller. Par exemple le contrôleur dans le code en dessous, possède une action nommée Index() et autre nommée SayHello(). Les deux méthodes sont exposées entant qu'action.
Controllers\HomeController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
    [HandleError]
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            return View();
        }

        public string SayHello()
        {
            return "Hello!";
        }
    
    }
}
Pour qu'une méthode soit exposée à l'univers entier entant qu'action, elle doit respecter certaines règles :

Notez qu'il n'y a aucune restriction sur le type du retour de la méthode. Le retour peut être un string, un DateTime, une instance d'une classe quelconque, ou void. Le framework ASP.NET MVC converti tout les retours qui ne sont des ActionResult en string et renvoi le rendu dans le navigateur.

Quand vous ajoutez une méthode qui respecte ces contraintes, la méthode est exposée en tant qu'action. Soyez prudent avec cela, une action peut être appelée depuis n'importe qui connecté sur internet. Par exemple ne créez pas une action DeleteMyWebSite() !


C. Empêcher une méthode publique d'être une action

Si vous avez besoin de créer une méthode publique dans un contrôleur et que vous ne souhaitez pas l'exposer entant qu'action, vous pouvez Empêcher la méthode d'être utilisée entant qu'action grâce à l'attribut [NonAction]. Par exemple, dans le code en dessous, le contrôleur contient une méthode publique nommée CompanySecrets() qui est décoré avec l'attribut [NonAction].
Controllers\WorkController.cs

using System.Web.Mvc;

namespace MvcApplication1.Controllers
{
    public class WorkController : Controller
    {
        [NonAction]
        public string CompanySecrets()
        {
            return "This information is secret.";
        }

    }
}
Si vous tentez de naviguer vers l'action CompanySecrets() en tapant /Work/CompanySecrets dans votre navigateur, vous obtiendrez le message d'erreur suivant :

Erreur lors de la navigation, CompanySecrets n'est pas une action
Erreur lors de la navigation, CompanySecrets n'est pas une action


               Version PDF (Miroir)   Version hors-ligne (Miroir)

Valid XHTML 1.1!Valid CSS!

Copyright © 2009 Vincent Lainé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.

Responsable bénévole de la rubrique Microsoft DotNET : Hinault Romaric -