Voici comment je remplir dropdownlist et créer l'élément html;comment lier selectlistitem valeur dans dropdownlist à la propriété de la chaîne dans le modèle
AccountController:
public ActionResult Index()
{
ViewBag.Towns = new SelectList(_skrsService.GetTowns(), "Value", "Text", 1);
return View();
}
...
public List<SelectListItem> GetTowns()
{
var list = UnitOfWork.Repository<SkrsIl>().OrderBy(x => x.Adi).Select(x => new SelectListItem()
{
Text = x.Adi,
Value = x.Kodu.ToString()
}).ToList();
return list;
}
Login.cshtml (Ville natale est le champ de chaîne dans le modèle bindned page de connexion de vue):
@Html.DropDownListFor(x => x.Hometown, ((SelectList)ViewBag.Towns), new { @class = "form-control", placeholder = "Doğum Yeri" })
Je me attendais que cela fonctionne, mais obtenir une erreur, un message:
"L'élément ViewData qui a la clé 'Ville d'origine' est de type 'System.String' mais doit être de tapez 'IEnumerable < SelectListItem>'. "
Comment puis-je le faire fonctionner correctement? Je m'attendais juste à ce que la valeur de l'item selectem soit affectée à la propriété 'Hometown'
Cela signifie que la valeur de 'viewBag.Towns' est' null' - référez-vous à [cette réponse] (https://stackoverflow.com/questions/34366305/the-viewdata-item-that-has-the-key -xxx-est-de-type-système-int32-mais-doit-être-o). Et en remarque, l'utilisation de 'new SelectList()' est un surcoût inutile - vous créez un 'IEnumerable' identique et le 4ème paramètre du constructeur est ignoré - c'est la valeur de 'Hometown' qui détermine ce qui est sélectionné –
Bonjour, votre commentaire contient plus que j'ai besoin, je l'accepte avec joie si vous postez cela comme réponse Merci! – TyForHelpDude