Maison > développement back-end > C++ > Comment lier correctement les dictionnaires dans ASP.NET MVC ?

Comment lier correctement les dictionnaires dans ASP.NET MVC ?

Linda Hamilton
Libérer: 2025-01-10 07:20:43
original
434 Les gens l'ont consulté

How to Properly Bind Dictionaries in ASP.NET MVC?

La liaison des valeurs du dictionnaire dans ASP.NET MVC est généralement simple, mais nécessite le respect de conventions de syntaxe spécifiques pour une liaison réussie.

Reliure du modèle

Dans la classe modèle, vous devez définir l'attribut dictionnaire et l'initialiser avec la valeur :

<code class="language-csharp">public class MyModel
{
    public Dictionary<string, string> Params { get; set; }

    public MyModel()
    {
        Params = new Dictionary<string, string>();
        Params.Add("Value1", "1");
        Params.Add("Value2", "2");
        Params.Add("Value3", "3");
    }
}</code>
Copier après la connexion

Afficher la balise

Dans une vue, liez-vous aux clés et valeurs du dictionnaire en utilisant la syntaxe suivante :

<code class="language-html">@foreach (KeyValuePair<string, string> kvp in Model.Params)
{ 
    <tr><td>
            @Html.TextBox("Params[" + kvp.Key + "]")
        </td>
    </tr>
}</code>
Copier après la connexion

Cette syntaxe garantit que la structure d'attribut de nom de chaque champ de saisie est "Params[key]", correspondant à la syntaxe de l'indexeur utilisée dans la liaison de modèle.

Lier les clés et les valeurs du dictionnaire

Dans ASP.NET MVC 4, le classeur de modèles par défaut lie les dictionnaires en utilisant la syntaxe typique de l'indexeur de dictionnaire (propriété[clé]). Par conséquent, la balise suivante sera liée avec succès à Dictionary<string, string> :

<code class="language-html">@foreach (var kvp in Model.MyDictionary) {
    <input type="checkbox" name="@string.Format("MyDictionary[{0}]", kvp.Key)" checked="@kvp.Value" />
}</code>
Copier après la connexion

Cela vous permet de lier des cases à cocher aux éléments du dictionnaire. Notez que checked="@kvp.Value" suppose que kvp.Value est un booléen. Si kvp.Value est une chaîne, vous devez ajuster cette partie du code en fonction de la situation réelle, par exemple en utilisant checked="@(kvp.Value == "true")".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal