2014-05-19 2 views
1

Je vais avoir ce dropDownListFor:Valider Html.DropDownListFor, pas envoyer valeur detault quand HttpPost

@Html.DropDownListFor(m => m.ChoosenThemeSetting, Model.ThemeSettings.Select(k => new SelectListItem { Text = k.ChoosenTheme, Value = k.ChoosenTheme, }), "-- Select here --", new { @class = "form-control", id = "colorIfZero" }) 

Dans le code, je l'ai mis « - Sélectionnez ici - » comme valeur par défaut. Si je ne sélectionne rien d'autre que la valeur de detault dans mon dropDown, la valeur par défaut sera affichée dans ma méthode [httpPost].

Y a-t-il un moyen de le prouver? Comme: si la valeur sélectionnée est ma valeur par défaut, donnez-moi un message de validation pour choisir quelque chose de mon DropDown. Becaues mon défaut "- Sélectionnez ici -" Je ne voudrais pas envoyer à mon [httpPost]

+0

Cocher cette http://stackoverflow.com/questions/23148038/how-to-set-state-of-dropdownlistfor-default- valeur/23197318 # 23197318 – Divyek

Répondre

0

Problème résolu merci à ce lien: http://forums.asp.net/t/1580133.aspx?DropDownListFor+validation. Merci ravikatha!

En définissant le modèle de classe qui détiennent la propriété pour ChoosenThemeSetting à (la classe)

[Required] 
    [DisplayName("")] 
    public string ChoosenThemeSetting { get; set; } 

Et puis changer mon DropDown code à cette (notez la String.Empty en ligne)

@Html.DropDownListFor(m => m.ChoosenThemeSetting, Model.ThemeSettings.Select(k => new SelectListItem { Text = k.ChoosenTheme, Value = k.ChoosenTheme, }), string.Empty, new { @class = "form-control", id = "colorIfZero" }) 

Et tout fonctionne bien! Je reçois maintenant un ValidationMessage de choisir quelques-unes des valeurs de mon DropDown

+0

Bien sûr, je ne dois pas laisser la valeur par défaut comme String.Empty .. Changé à "- Sélectionnez ici -". Et ça marche aussi! – user3228992

Questions connexes