0% ont trouvé ce document utile (0 vote)
125 vues35 pages

ASP.NET Razor : Guide de Développement Web

Ce document présente les concepts clés liés au développement web côté serveur avec ASP.NET Razor. Il aborde des sujets tels que la syntaxe Razor, la transmission d'informations entre le contrôleur et la vue, la création de vues et de contrôleurs, et la validation des formulaires.

Transféré par

Olivier Girafe
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
125 vues35 pages

ASP.NET Razor : Guide de Développement Web

Ce document présente les concepts clés liés au développement web côté serveur avec ASP.NET Razor. Il aborde des sujets tels que la syntaxe Razor, la transmission d'informations entre le contrôleur et la vue, la création de vues et de contrôleurs, et la validation des formulaires.

Transféré par

Olivier Girafe
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Développement Web

côté serveur avec ASP.NET


Module 5 - ASP.NET Razor
Développement Web côté serveur avec ASP.NET

Objectifs
• Savoir utiliser la syntaxe Razor
• Savoir passer des informations du serveur à la vue
• Savoir créer des vues et des contrôleurs
avec le wizard de Visual Studio
• Comprendre et utiliser les formulaires
Développement Web côté serveur avec ASP.NET
La syntaxe Razor

• Fichiers .cshtml (HTML + C#)


• @ indique du code serveur
• Déclaration :
@{ int pos = 7; }
@{ var myMessage = "Hello World!"; }
@{ var today = DateTime.Today; }
• Utilisation :
<p>@myMessage</p>

• Commentaire :
@* A one-line code comment. *@
Développement Web côté serveur avec ASP.NET
La syntaxe Razor

• Conditionnelles
@if (myMessage == "valeur")
{
<p>Hello !</p>
} else {
<p>@myMessage</p>
}

• Boucles
@for (var i = 0; i < 10; i++) { @foreach (var element in ensemble) {
<p>...</p> <p>@element</p>
} }
Développement Web côté serveur avec ASP.NET

-Démonstration-
La syntaxe Razor
Développement Web côté serveur avec ASP.NET
Passer des informations du contrôleur à la vue

• ViewBag

• TempData

• Une classe
Développement Web côté serveur avec ASP.NET
Passer des informations du contrôleur à la vue

• ViewBag
• Dans le contrôleur :
public ActionResult AfficherMessage(string nom)
{
ViewBag.Message = nom;
return View();
}

• Coté vue :
@ViewBag.Message
• Ne supporte pas les redirections
Développement Web côté serveur avec ASP.NET
Passer des informations du contrôleur à la vue

• TempData
• Dans le contrôleur :
public ActionResult AfficherMessage(string nom)
{
TempData["Message"] = nom;
return View();
}

• Coté vue :
@TempData["Message"]
• Supporte les redirections
Développement Web côté serveur avec ASP.NET
Passer des informations du contrôleur à la vue

• Une classe
• Dans le dossier Models
public class MessageVM {
public string? Message { get; set; }
}

• Dans le contrôleur
public IActionResult AfficherMessage(string nom) {
MessageVM m = new MessageVM { Message = nom };
return View(m);
}
Développement Web côté serveur avec ASP.NET
Passer des informations du contrôleur à la vue

• Une classe

• Dans la vue :
@model siteWeb.Models.MessageVM <= déclaration
@Model.Message <= utilisation
Développement Web côté serveur avec ASP.NET
Passer des informations du contrôleur à la vue
Développement Web côté serveur avec ASP.NET

-Démonstration-
Passer des
informations du
Contrôleur à la vue
Développement Web côté serveur avec ASP.NET
Simplification d’écriture pour produire du HTML

• HtmlHelper
@Html.ActionLink("Apprentissage", "Apprendre", "Cours",
new { area = "" }, new { @class = "navbar-brand" })

<a class="navbar-brand" href="/Cours/Apprendre">Apprentissage</a>

• Progressivement remplacés par les TagHelpers


Développement Web côté serveur avec ASP.NET
Simplification d’écriture pour produire du HTML

• TagHelper
<a class="navbar-brand" asp-area="" asp-controller="Cours"
asp-action="Apprendre">Apprentissage</a>

<a class="navbar-brand" href="/Cours/Apprendre">Apprentissage</a>

• Possibilité de créer vos propres TagHelpers :

https://docs.microsoft.com/fr-fr/aspnet/core/mvc/views/tag-helpers
Développement Web côté serveur avec ASP.NET
Génération des vues et des contrôleurs par Visual Studio

• Création d’un Modèle


• Génération d’un Contrôleur
• Génération des Vues
Développement Web côté serveur avec ASP.NET

-Démonstration-
Génération des vues et
des contrôleurs
par Visual Studio
Développement Web côté serveur avec ASP.NET

TP Chats
TP
Développement Web côté serveur avec ASP.NET
Les vues partielles

Personne
Id : int
Nom : string
Prenom : string
Delete.cshtml Details.cshtml
Code spécifique à la vue Delete Code spécifique à la vue Details
… …
Affichage de l’élément Personne Affichage de l’élément Personne
… …

_Personne.cshtml

Affichage de l’élément Personne


Développement Web côté serveur avec ASP.NET
Les vues partielles

Delete.cshtml
Personne
Details.cshtml Id : int
Code spécifique à la vue Delete Code spécifique à la vue Details Nom : string
… … Prenom : string
<partial name="_personne" /> <partial name="_personne" />
… …

_personne.cshtml @model Personne


<dt class = "col-sm-2">
@Html.DisplayNameFor(model => model.Nom)
</dt>
<dd class = "col-sm-10">
@Html.DisplayFor(model => model.Nom)
</dd>
Développement Web côté serveur avec ASP.NET

-Démonstration-
Les vues partielles
Développement Web côté serveur avec ASP.NET
Les formulaires

Client
Serveur
GET Personne/Edit/id

Edit.cshtml Personne
Développement Web côté serveur avec ASP.NET
Les formulaires

Client
Serveur
POST Personne/Edit/id
Id: 1
Nom: BRISEBOIS
Prenom: Lorraine
Age: 22

Redirection vers une autre page


Développement Web côté serveur avec ASP.NET
Les formulaires

// GET: Personne/Edit/5
public ActionResult Edit(int id) {
Personne? persAModif = _personnes.FirstOrDefault(p => p.Id == id);
if (persAModif == null)
return NotFound();
return View(persAModif);
}
Développement Web côté serveur avec ASP.NET
Les formulaires

// POST: Personne/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(int id, Personne personne) {
try {
Personne? persAModif = _personnes.FirstOrDefault(p => p.Id == id);
if(persAModif == null) { return NotFound(); }
persAModif.Nom = personne.Nom;
return RedirectToAction(nameof(Index));
} catch { return View(personne); }
}
Développement Web côté serveur avec ASP.NET
Les formulaires

• TagHelper <form>
• Principaux attributs :
• asp-action
• asp-controller
• asp-route-{value}

<form asp-action="Create">
<partial name="_form" />
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
Développement Web côté serveur avec ASP.NET
Les formulaires

• TagHelper <label> et <input>


• Attributs :
• asp-for

<div class="form-group">
<label asp-for="Nom" class="control-label"></label>
<input asp-for="Nom" class="form-control" />
<span asp-validation-for="Nom" class="text-danger"></span>
</div>
Développement Web côté serveur avec ASP.NET

-Démonstration-
Les formulaires
Développement Web côté serveur avec ASP.NET

TP Pizza – partie 1
TP
Développement Web côté serveur avec ASP.NET
La validation des formulaires - Annotations

• Les annotations
• [Required]
• [StringLength]
• [EmailAddress]
• [Range]
• [RegularExpression]
• …
• Exemples :
[Required]
[StringLength(30, MinimumLength = 2)]
public string Nom { get; set; }
Développement Web côté serveur avec ASP.NET
La validation des formulaires – Message d’erreur pour une annotation

• Propriété ErrorMessage
• Exemple :
[Required(ErrorMessage =
"Le nom d'une personne doit nécessairement être renseigné")]
[StringLength(30, MinimumLength = 2,
ErrorMessage = "Le nom doit comporter entre {2} et {1} caractères")]

You can use composite formatting placeholders in the error message: {0} is the name of the
property; {1} is the maximum length; and {2} is the minimum length. The placeholders
correspond to arguments that are passed to the String.Format method at runtime.
La validation des formulaires – Côté client
La validation des formulaires – Côté client

• Validation avec JQuery Validation


<span asp-validation-for="Nom" class="text-
danger"></span>
Développement Web côté serveur avec ASP.NET
La validation des formulaires – Côté serveur

• ModelState.IsValid

public ActionResult Create(Personne personne) {


try {
if(ModelState.IsValid) {
personne.Id = _id++;
_personnes.Add(personne);
return RedirectToAction(nameof(Index));
} else { return View(personne); }
} catch { return View(personne); }
}
Développement Web côté serveur avec ASP.NET
La validation des formulaires – Côté serveur

• ModelState.AddModelError

if(_personnes.Any(p => p.Nom == personne.Nom)) {


ModelState.AddModelError("Nom",
"Une personne a déjà été enregistrée avec ce nom");
return View(personne);
}
Développement Web côté serveur avec ASP.NET

TP Pizza – partie 2
TP
Développement Web côté serveur avec ASP.NET
Conclusion

• La syntaxe Razor
• Le passage des informations du serveur à la vue
• La création des vues et des contrôleurs avec le wizard de Visual
Studio
• Les formulaires

Vous aimerez peut-être aussi