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.
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.
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é.
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
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