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
Linda Hamiltonoriginal
2025-01-10 07:20:43497parcourir

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>

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>

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>

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!

Déclaration:
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