Créer un contrôleur

Lainé Vincent (Traduction)

Le but de ce tutoriel est d'expliquer comment créer un nouveau contrôleur ASP.NET MVC. Vous y apprendrez comment créer un contrôleur avec le menu de Visual Studio ou en créant une classe "à la main"

- Titre : Créer un contrôleur

- Auteur : Lainé Vincent (Traduction)

- Parution : 22 avril 2009

- Licence : 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.

Sommaire

- Traduction

- B. Utilisez le menu "Ajouter un contrôleur"

- B-1. Création automatique des méthodes d'actions

- C. Créer une classe contrôleur à la main

Traduction

Cet article est la traduction la plus fidèle possible de l'article original : Creating a Controller

B - Utilisez le menu "Ajouter un contrôleur"

La méthode la plus simple pour créer un contrôleur consiste à effectuer un click droit sur l'explorateur de solution et à sélectionner le menu Ajouter -> contrôleur. Cliquer sur ce menu ouvre la boite de création de contrôleur.

Menu Ajouter -> contrôleur de Visual Studio

La boite de dialogue Ajouter un contrôleur

Notez que dans figure 2, seul le début du nom est surligné dans la boite de dialogue. Chaque nom de contrôleur doit obligatoirement être suffixé avec "Controller". Par exemple vous pouvez créer un contrôleur ProductController mais pas un contrôleur Product.

Si vous créer un contrôleur qui ne se termine pas par "Controller" vous ne serez pas en capacité de l'appeler.
J'ai gaspillé de nombreuse heure de ma vie après avoir fait cette erreur.

Controllers\ProductController.cs

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

namespace MvcApplication1.Controllers
{
public class ProductController : Controller
{
//
// GET: /Product/

public ActionResult Index()
{
return View();
}

}
}

Vous devez toujours créer les contrôleurs dans le dossier Controllers. Si vous ne le faites pas, vous violez les conventions d'ASP.NET MVC et les autres développeurs auront plus de mal à comprendre votre application.

B-1 - Création automatique des méthodes d'actions

Quand vous créez un contrôleur vous avez une option permettant de générer les méthodes d'actions Create, Update, Delete automatiquement. Si vous sélectionnez cette option le contrôleur ci après sera généré.

Option de création des méthodes d'action Create, update, Delete

Controllers\CustomerController.cs

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

namespace MvcApplication1.Controllers
{
public class CustomerController : Controller
{
//
// GET: /Customer/

public ActionResult Index()
{
return View();
}

//
// GET: /Customer/Details/5

public ActionResult Details(int id)
{
return View();
}

//
// GET: /Customer/Create

public ActionResult Create()
{
return View();
}

//
// POST: /Customer/Create

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
try
{
// TODO: Add insert logic here

return RedirectToAction("Index");
}
catch
{
return View();
}
}

//
// GET: /Customer/Edit/5

public ActionResult Edit(int id)
{
return View();
}

//
// POST: /Customer/Edit/5

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection collection)
{
try
{
// TODO: Add update logic here

return RedirectToAction("Index");
}
catch
{
return View();
}
}
}
}

Les méthodes générés sont des squellettes. Vous devez ajouter la logique de traitement vous même pour créer, mettre à jour ou afficher les détails d'un client vous même. Mais ces squellettes sont un bon point de départ.

C - Créer une classe contrôleur à la main

Les contrôleurs ASP.NET MVC ne sont que des classes. Si vous préférez vous pouvez ignorer l'assistant de création de contrôleur de Visual Studio, et créer un contrôleur à la main. Pour cela suivez ces étapes :

- Click droit sur le dossier "Controller" dans l'explorateur de solutions et sélectionnez le menu "Ajouter -> Nouvel item -> Classe"

- Nommez la nouvelle classe PersonController.cs et cliquez sur le bouton "Ajouter"

- Modifier la nouvelle classe pour qu'elle hérite de la classe System.Web.Mvc.Controller

Ajouter une nouvelle classe

Controllers\PersonController.cs

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

namespace MvcApplication1.Controllers
{
public class PersonController : System.Web.Mvc.Controller
{

public string Index()
{
return "Hello World!";
}

}
}

Le contrôleur dans l'exemple au dessus expose l'action Index() qui retourne la string "Hello World!". Vous pouvez l'appeler en lancant votre application et en naviguant vers une URL de la forme http://localhost/Person