Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET M

Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 1 CHAPITRE 3 Contrôleurs et Vues dans Naoufel KHAYATI AU. 2019 - 2020 95 PLAN 96 Contrôleurs Actions Résultats d’actions Vues Moteurs de vue : ASPX / Razor Transmission de données ViewData / ViewBag TempData Session 95 96 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 2 97 Contrôleurs Contrôleurs MVC 98 Le contrôleur possède un ensemble de méthodes Le contrôleur Home a trois méthodes Index(), About() et Contact(). Ces méthodes correspondent aux actions exposées par le contrôleur. Par exemple : L'URL /Home/Index invoque la méthode Index() de HomeController. 97 98 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 3 Contrôleurs MVC 99 Chaque nom de contrôleur doit obligatoirement être suffixé par « Controller ». Sinon, on ne sera pas en capacité de l'appeler. On doit toujours créer les contrôleurs dans le dossier « Controllers ». Sinon, on n’a pas respecté les conventions d'ASP.NET MVC et les autres développeurs auront plus de mal à comprendre l’application. Contrôleurs MVC 100 Un contrôleur hérite de la classe System.Web.Mvc.Controller. Grâce à cet héritage, il obtient un certain nombre de caractéristiques clés Méthodes d’actions. Résultats d’actions. Filtres : Servant à encapsuler des comportements réutilisables (à voir dans un prochain chapitre). Les méthodes générées par défaut sont des squelettes représentant un bon point de départ. Il faut, cependant, ajouter la logique de traitement. 99 100 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 4 101 Toute action est accessible à partir d’une URL différente et est invoquée avec des paramètres extraits à partir de la requête. Une action d’un contrôleur doit être une méthode publique. Toute méthode publique d'un contrôleur est automatiquement exposée comme une action du contrôleur (retournant un ActionResult ou non) à condition qu’elle ne soit pas statique. Si besoin est, une méthode publique qui n’est pas une action doit être annotée (précédée) par l’attribut [NonAction]. Actions des Contrôleurs MVC 102 Si on veut spécifier un nom d'action différent de celui de la méthode, on peut utiliser l'attribut ActionName. Cette action sera invoquée via l’URL http://localhost/movie/find/1 au lieu de http://localhost/movie/getMovieById/1. Actions des Contrôleurs MVC 101 102 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 5 103 Une action retourne un objet ActionResult qui sera envoyé au navigateur en réponse à la requête. Le Framework ASP.NET MVC supporte un certain nombre d’ActionResult : ViewResult : Une vue affichant de l'HTML EmptyResult : Représente une absence de résultat RedirectResult : Représente une redirection vers une URL JsonResult : Représente un résultat sous forme de JavaScript Object Notation qui peut être utilisé dans une application Ajax. JavaScriptResult : Représente un script JavaScript ContentResult : Représente un résultat sous forme de texte FileContentResult : Représente le contenu d’un fichier. Etc. Résultats d’actions 104 Une action doit retourner le résultat de l’une des méthodes suivantes : View() : retourne un ViewResult Redirect(): retourne un RedirectResult RedirectToAction() / RedirectToRoute() : retournent un RedirectToRouteResult Json() : retourne un JsonResult Javascript() : retourne un JavaScriptResult Content() : retourne un ContentResult File() : retourne un FileContentResult, FilePathResult, FileStreamResult en fonction des paramètres. Résultats d’actions 103 104 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 6 Résultats d’actions – ContentResult 105 La méthode Content() est spéciale. On peut l’utiliser pour renvoyer au navigateur un résultat sous forme de texte au lieu du html. Ces trois exemples donnent le même résultat. Résultats d’actions – ContentResult 106 Si une action retourne un résultat qui n'est pas un ActionResult, alors il sera automatiquement encapsulé dans un ContentResult. Par exemple quand l'action Date() suivante est appelée, la date est renvoyée dans un ContentResult automatiquement : Le Framework ASP.NET MVC convertit le DateTime en String et l'encapsule dans un ContentResult automatiquement. Le navigateur obtient ce résultat en tant que texte simple. 105 106 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 7 Résultats d’actions – ViewResult 107 Pour A(), même si on n’a rien précisé, on cherche une vue qui porte le même nom que l’action, donc nommée A. Pour B(), on cherche une vue nommée C (c’est dit explicitement). Pour C(), les deux instructions return View() et return View("C") sont équivalentes. Résultats d’actions – ViewResult 108 Ici, le retour de l’action B() dépend de celui de l’action C() !!! 1er cas : l’action C() va essayer de retourner une vue nommée B car c’est l’action B qui l’a sollicitée. 2ème cas : c’est la vue C qui sera retournée. (1) (2) 107 108 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 8 Résultats d’actions – ViewResult 109 Si une action veut retourner une vue qui lui est propre, elle doit en posséder une déjà. L’Action Index() de « Home » doit avoir une vue Index qui se situe dans le dossier Views/Home, sinon le serveur renvoie l’erreur suivante : Résultats d’actions – Transfert 110 Dans les cas précédents, MVC est censé retourner du HTML. Le navigateur n’est pas au courant du changement de l’action !!! Ces exemples représentent un transfert de traitement (de page). La requête est traitée par deux actions successives (sur le serveur). Il s’agit bien de la même requête réécrite et transférée. Le transfert arrête l'exécution de la 1ère action. Le client ne peut pas savoir qu’il y a eu transfert. Le transfert a lieu sur le serveur. L’URL ne change pas sur le navigateur. 109 110 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 9 Résultats d’actions – Redirection 111 Dans ce qui suit, MVC est censé rediriger la requête à l’action ou à la route spécifiée. Le navigateur reçoit la notification de redirection et crée une nouvelle requête. Redirection de traitement (de page) Résultats d’actions – Redirection 112 La redirection envoie le code HTTP 302 vers le navigateur ainsi que la nouvelle URL de la page désirée. Le code 302 signifie « La ressource demandée réside temporairement sous une URL différente ». A la réception de ce code, le navigateur essaie d'ouvrir le nouvel emplacement de la ressource qui a été proposée par le serveur. Cela provoque deux demandes au serveur, l'une à l'URL d'origine, et la seconde vers la nouvelle URL. 111 112 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 10 Résultats d’actions – Redirection 113 Le client est au courant de la redirection. La redirection peut changer de contrôleur (et même de serveur pour le cas de Redirect()). Résultats d’actions – Redirection 114 Cas de RedirectToAction() Construit une URL de redirection vers l’action spécifiée à partir de la table des routes. Redirection vers l’action "C" du contrôleur "OtherController" Si l’action a besoin de paramètres 113 114 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 11 Résultats d’actions – Redirection 115 Cas de Redirect() Construit une URL de redirection vers l’URL spécifiée. L’URL est à préciser par le développeur. Résultats d’actions – Redirection 116 Cas de RedirectToRoute() Cherche la route spécifiée puis fait une redirection vers l’action qui y est définie. 115 116 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 12 117 Vues Vues MVC 118 L’action Index() retourne une vue nommée Index.cshtml située dans le chemin : /Views/Home Cette vue contient du code HTML, des scripts, des objets d’interface, etc. La vue dans sa version affichée dans un navigateur est générée par un moteur de vue (View Engine). 117 118 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 13 Moteurs de vues 119 Un moteur de vue est un module qui met en œuvre un modèle de syntaxe des codes à insérer dans les pages html. C’est le composant qui va s’occuper de générer du code HTML Razor et ASPX en sont des exemples. Moteur de vue ASPX 120 Les codes C# ou VB.NET sont mis entre <% et %> dans les pages Web ASP.NET (.aspx). Cette combinaison est assez inconfortable pour l'écriture et la délimitation du code qui peut rapidement devenir illisible. 119 120 Naoufel KHAYATI Cours « Développement d’Applications d’Entreprises » (ASP.NET MVC 5) ENISo – IA2 – 2019 / 2020 14 Moteur de vue ASPX 121 Généralement, les développeurs utilisent les vues au format ASPX, surtout pour des raisons historiques. ASPX est celui utilisé avec ASP.NET Web Forms. Les vues au format ASPX contenant du code, deviennent difficile à écrire car il faut sans arrêt ouvrir et fermer les tags <% et %>. Écriture des boucles ou uploads/Finance/chapitre-3-controleurs-et-vues.pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Nov 03, 2021
  • Catégorie Business / Finance
  • Langue French
  • Taille du fichier 1.0611MB