ASP .NET Core propose un ensemble de composants de configuration qui fournissent un ensemble de paramètres sous la forme clé / valeur. Deux scénarios vous permettent d’accéder aux valeurs des paramètres de configuration dans les vues ...
ASP .NET MVC Core 2 - Obtenir les valeurs des paramètres de fichiers de configuration dans les vues
1. AlgoWin - James RAVAILLE
http://www.algowin.fr
ASP .NET MVC Core 2
Obtenir les valeurs des
paramètres de fichiers de
configuration dans les vues
Spécialiste de la formation et de l’ingénierie avec la plateforme Microsoft .NET
2. AlgoWin - James RAVAILLE
PRÉSENTATION
ASP .NET Core propose un ensemble de composants de configuration
qui fournissent un ensemble de paramètres sous la forme clé / valeur
Cet ensemble de données est déterminé lors du démarrage de
l’application Web
Différents formats de données sont pris en charge, avec pour chacun
d’entre eux un fournisseur de données spécifique :
• Fichiers Json, Xml
• Arguments de ligne de commande
• Variables d'environnement
• Objets .NET en mémoire
• …
3. AlgoWin - James RAVAILLE
SCÉNARIOS
Deux scénarios vous permettent d’accéder aux valeurs des paramètres
de configuration dans les vues :
Avec les classes d’accès et de gestion des
configurations proposées par ASP .NET MVC Core
Avec les classes de mapping permettant d’accéder
aux valeurs des paramètres
Les identifiants des paramètres sont écrits sous
forme de chaînes de caractères
(non fortement typés ; pas de refactoring possible)
Les identifiants des paramètres sont écrits sous
forme de membres d’instance
(fortement typés ; refactoring possible)
1 2
4. AlgoWin - James RAVAILLE
PRÉSENTATION D’UN FICHIER DE CONFIGURATION
A la racine du projet nous créons (ou modifions s’il existe déjà) le
fichier de configuration nommé appSettings.json pour écrire le
contenu suivant :
"Formation": "ASP .NET Core",
"Formateurs": {
"Principal": "James RAVAILLE"
},
"Plan": [
{
"Libelle": "Les contrôleurs",
"CoefDuree": "0.75"
},
{
"Libelle": "Les vues",
"CoefDuree": "1.5"
}
]
5. AlgoWin - James RAVAILLE
SCÉNARIO 1 : CONFIGURATION DES VUES
Modifier le fichier _ViewImports.cshtml, afin d’importer dans toutes
les vues l’espace de nom Microsoft.Extensions.Configuration
Ainsi l’ensemble des types de données contenus dans cet espace de
nom, seront utilisables dans les vues de l’application
@using Microsoft.Extensions.Configuration
6. AlgoWin - James RAVAILLE
SCÉNARIO 1 : LECTURE DE LA VALEUR DES PARAMÈTRES DANS LA VUE
@inject IConfiguration Configuration
Libellé : @Configuration["Formation"]
<br />
Formateur : @Configuration["Formateurs:Principal"]
<br />
Chapitres :
<br />
<ul>
<li>@Configuration["Plan:0:Libelle"] (@Configuration["Plan:0:CoefDuree"] j)</li>
<li>@Configuration["Plan:1:Libelle"] (@Configuration["Plan:1:CoefDuree"] j)</li>
</ul>
Accès à la valeur du paramètre Formation
Accès à la valeur du paramètre Principal,
contenu dans l’élément Formateurs
Affichage des libellés et des coefficients de durée de chaque module de la formation,
contenu dans l’élément Plan. La valeur de l’indice du premier élément est 0
Injection de l’élément de configuration (injection de dépendance)
8. AlgoWin - James RAVAILLE
SCÉNARIO 2 : IMPLÉMENTATION D’UNE CLASSE DE PARAMÈTRES
Dans le répertoire Model de l’application, créer une classe nommée
Parametres, contenant l’implémentation des classes suivantes :
public class Parametres
{
public string Formation { get; set; }
public Formateurs Formateurs { get; set; }
public List<ModulePlan> Plan { get; set; }
}
public class Formateurs
{
public string Principal { get; set; }
}
public class ModulePlan
{
public string Libelle { get; set; }
public string CoefDuree { get; set; }
}
Les noms des propriétés sont identiques aux noms
des éléments dans le fichier de configuration
9. AlgoWin - James RAVAILLE
SCÉNARIO 2 : DÉCLARATION DE L’INJECTION DE DÉPENDANCE
Dans la classe Startup :
public void ConfigureServices(IServiceCollection services)
{
services.Configure<Parametres>(Configuration);
// Instructions supplémentaires
}
Configuration du service permettant d’accéder aux
valeurs des paramètres
10. AlgoWin - James RAVAILLE
SCÉNARIO 2 : CONFIGURATION DES VUES
Modifier le fichier _ViewImports.cshtml, afin d’importer dans toutes
les vues, l’espace de nom Microsoft.Extensions.Options
Ainsi l’ensemble des types de données contenus dans cet espace de
nom, seront utilisables dans les vues de l’application
@using Microsoft.Extensions.Options
11. AlgoWin - James RAVAILLE
SCÉNARIO 2 : LECTURE DE LA VALEUR DES PARAMÈTRES DANS LA VUE
@inject IOptions<Parametres> Parametres
Libellé : @Parametres.Value.Formation
<br />
Formateur : @Parametres.Value.Formateurs.Principal
<br />
Chapitres :
<br />
<ul>
<li>@Parametres.Value.Plan[0].Libelle (@Parametres.Value.Plan[0].CoefDuree j)</li>
<li>@Parametres.Value.Plan[1].Libelle (@Parametres.Value.Plan[1].CoefDuree j)</li>
</ul>
Lecture de la valeur du paramètre dont l’identifiant est
Formation dans la configuration de l’application
Injection d’une dépendance dans une vue
Accès à la valeur du paramètre Principal,
contenu dans l’élément Formateurs
Affichage des libellés et des coefficients de durée de chaque module de la formation,
contenu dans l’élément Plan. La valeur de l’indice du premier élément est 0