Guillaume Lacasa
Les bases d’ASP.NET MVC
Découvrez avec ASP.NET MVC une nouvelle façon de créer des sites webs de manière structurée suivant le pattern Modèle-Vue-Contrôleur.
Par Guillaume Lacasa publié le 14/10/2009 à 21:48, lu 1355 fois, 7 pages
 4 | Les controleurs
La version 1 RTM a apporté un éditeur qui aide à la création de nouveaux éléments dans le projet. On commence par créer un contrôleur :
 
/content/f6fd7fc0-dc00-4ed7-a5e7-5c45644b4521/image3.png
 
Le nom du contrôleur doit forcément se terminer par Controller. On a la possibilité de demander à l’éditeur la création d’actions par défaut.
 
/content/f6fd7fc0-dc00-4ed7-a5e7-5c45644b4521/image4.png
 
Une fois créé, le contrôleur doit contenir des actions. Chaque action est une fonction qui retourne un résultat de type ActionResult.

public ActionResult Index()

{

    return View();

}

Les actions peuvent aussi recevoir directement les paramètres venant de l’URL.

public ActionResult Details(int id)

{

    return View();

}

Les ActionResult peuvent être de plusieurs types :
  • L’appel d’une vue : return View();Retourne une vue au navigateur. Si rien n’est spécifié, la vue retournée est celle qui a le même nom que l’action. Il est possible de définir quelle vue retourner au navigateur, et de faire passer des données à afficher dans la vue (voir le chapitres consacré aux vues)
  • Une redirection. Il existe plusieurs types de redirection :
  • return Redirect("url");Fais une redirection vers une url
  • return RedirectToAction("Index");Redirige vers une autre action, avec la possibilité de spécifier un autre controleur et de faire passer des paramètres.
  • Envoi de contenu : on peux envoyer directement du contenu au client sans passer par une vue, en envoyant directement un fichier, ou en envoyant directement une chaine de caractères :
  • return Content("<div>exemple</div>");
  • return File("fichier.doc", "application/msword");
Il existe d’autres ActionResult, et il est aussi possible de créer ses propres ActionResult qui correspondraient à un besoin particulier.
 
» Démarrer une discussion