Ich baue die folgenden SelectList
in meinem Controller.ASP.NET MVC Dropdown-Liste von SelectList
var u = new NewUser();
u.UserTypeOptions = new SelectList(new List<SelectListItem>
{
new SelectListItem { Selected = true, Text = string.Empty, Value = "-1"},
new SelectListItem { Selected = false, Text = "Homeowner", Value = ((int)UserType.Homeowner).ToString()},
new SelectListItem { Selected = false, Text = "Contractor", Value = ((int)UserType.Contractor).ToString()},
});
return u;
Und es auf meiner Ansicht wie diese Anzeige:
@Html.DropDownListFor(m => m.UserType, Model.UserTypeOptions)
Es sieht aus wie ich es einen gültigen Satz von SelectListItem
s in bin zu geben, was eine ziemlich einfache Drop-Down-Liste sein sollte, aber anstatt sich eine gültige <option>
Liste mit guten Werten und Text, ich diese:
<select data-val="true" data-val-range="A user type must be selected." data-val-range-max="2" data-val-range-min="1" data-val-required="The UserType field is required." id="UserType" name="UserType" class="input-validation-error">
<option>System.Web.Mvc.SelectListItem</option>
<option>System.Web.Mvc.SelectListItem</option>
<option>System.Web.Mvc.SelectListItem</option>
</select>
Was soll das? Soweit ich das beurteilen kann, sollte das funktionieren.
Warum in aller Welt würden Sie eine 'SelectList' erstellen und dann einen anderen' SeelctList' daraus erstellen. Und die 'Selected' Eigenschaft von' SelectListItem' ist ebenso sinnlos - sie wird vom HtmlHelper ignoriert - ihr Wert der Eigenschaft 'UserType' bestimmt, was ausgewählt ist (das einzige Mal, dass die' Selected' Eigenschaft respektiert wird, ist beim Erstellen eine Dropdownliste, die nicht an Ihr Modell gebunden ist (zB '@Html.DropDownList ("NotAProperty", Model.UserTypeOptions) ') –