J'ai un problème avec la présélection des éléments dans une liste. J'utilise le moteur de vue de rasoir avec le mvc 3. Je sais qu'il y a quelques messages avec le même problème mais ils ne fonctionnent pas pour moi.Présélectionner des éléments dans Multiselect-Listbox (MVC3 Razor)
code en classe:
public class Foo{
private int _id;
private string _name;
public string Name{
get{
return _name;
}
public int Id {
get{
return _id;
}
}
code dans le modèle:
public class FooModel{
private readonly IList<Foo> _selectedFoos;
private readonly IList<Foo> _allFoos;
public IList<Foo> SelectedFoos{
get{ return _selectedFoos;}
}
public IList<Foo> AllFoos{
get{ return _allFoos;}
}
}
code dans cshtml:
@Html.ListBoxFor(model => model.Flatschels,
Model.AllFlatschels.Select(fl => new SelectListItem {
Text = fl.Name,
Value = fl.Id.ToString(),
Selected = Model.Flatschels.Any(y => y.Id == fl.Id)
}), new {Multiple = "multiple"})
j'ai essayé beaucoup d'autres choses, mais rien ne fonctionnait. J'espère que quelqu'un peut aider.
Merci beaucoup. Je l'ai fait fonctionner. Bien que seulement le deuxième code a fonctionné et il me semble, ce n'est pas à cause du ToString substitué(). Ma propriété Id était un int et j'ai ajouté une clé de propriété retournant une chaîne unique (guid.ToString()). – Tobias
Bizarre. Impossible d'expliquer la chose ToString, mais je suis content que vous l'ayez trié :-) –
C'était définitivement à cause du ToString(). Juste posté une question dans le forum de Microsoft et j'espère obtenir une réponse et peut-être une information pourquoi (et combien de temps) c'est comme ils le sont actuellement. – Tobias