112 votes

MvC3 DropDownListFor - un exemple simple ?

J'ai de la difficulté avec DropDownListFor dans mon MVC3 app. J'ai été en mesure d'utiliser StackOverflow à comprendre comment faire pour qu'ils apparaissent dans la Vue, mais maintenant je ne sais pas comment faire pour capturer les valeurs de ses propriétés correspondantes sur le Modèle de Vue quand il est soumis. Afin d'obtenir que cela fonctionne, j'ai dû créer un intérieur de classe qui avait un ID et une valeur de la propriété, puis j'ai dû utiliser un IEnumerable<Contrib> pour satisfaire l' DropDownListFor paramètre exigences. Maintenant, cependant, comment est-MVC FW censé correspondre la valeur sélectionnée dans cette liste déroulante de retour dans la simple chaîne de propriété sur mon modèle de vue?

public class MyViewModelClass
{
    public class Contrib
    {
        public int ContribId { get; set; }
        public string Value { get; set; }
    }

    public IEnumerable<Contrib> ContribTypeOptions = 
        new List<Contrib>
        {
            new Contrib {ContribId = 0, Value = "Payroll Deduction"},
            new Contrib {ContribId = 1, Value = "Bill Me"}
        };

    [DisplayName("Contribution Type")]
    public string ContribType { get; set; }
}

De mon point de Vue, je place le menu déroulant sur la page comme ceci:

<div class="editor-label">
    @Html.LabelFor(m => m.ContribType)
</div>
<div class="editor-field">
    @Html.DropDownListFor(m => m.ContribTypeOptions.First().ContribId, 
             new SelectList(Model.ContribTypeOptions, "ContribId", "Value"))
</div>

Quand j'envoie le formulaire, la ContribType est (bien sûr) la valeur null.

Quelle est la bonne façon de le faire?

166voto

Sergey Gavruk Points 2166

Vous devriez faire comme ceci :

Où :

est une propriété où sera la valeur du résultat.
Et le dernier param du constructeur de la liste de sélection est une valeur sélectionnée

6voto

Dilip0165 Points 655

Pour lier des données dynamiques dans un contrôle DropDownList, vous pouvez faire ce qui suit :

Créer ViewBag au contrôleur, comme ci-dessous

maintenant utiliser cette valeur dans la vue comme ci-dessous :

6voto

Praveen M P Points 140

Je pense que cela vous aidera : contrôleur obtenir les éléments de liste et la valeur sélectionnée

et en vue

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X