Je veux lier ma classe Store qui a plusieurs produits à Html.Listbox. En mode édition, je souhaite que Html.Listbox affiche tous les produits dans lesquels les produits du magasin sont sélectionnés. Je n'ai pas réussi à lier store.Products à la liste déroulanteLiaison de modèle MVC IList <T> données à Html.Listbox
Ma structure de classe;
public class Store
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Product> Products { get; set; }
}
public class Product
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
public class StoreEditView
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IList<Product> Products { get; set; }
public virtual MultiSelectList ProductList //populated from db, all products in the form of IList<Product>
}
Mon contrôleur;
public ViewResult Edit()
{
var editstore = new StoreEditView();
editstore.Products = new List<Product> {new Product() {Id = 1, Name="Example"}};
return View(editstore);
}
Mes vues;
<%=Html.ListBox("Products", Model.ProductList)%>
Dans ce cas, j'ai besoin d'afficher product.Id = 1 dans la zone de liste. Jusqu'à présent, je ne pouvais pas le faire. J'ai essayé,
<%=Html.ListBox("Product.Id", Model.ProductList)%>
<%=Html.ListBox("Products.Id", Model.ProductList)%>
n'a pas fonctionné.
Model.Productlist déjà remplit la liste déroulante. Mon problème est, ListBox ("Produits") n'ont aucune relation avec la liste Store.Products. – dasmod
Je ne suis pas sûr de comprendre le problème. Comment peuples-tu Model.ProductList? S'il doit correspondre à Model.Products et non, alors je ne peux que supposer que vous devez changer la routine qui le remplit. – grenade
ok, Model.ProductList est; public MultiSelectList ProductList {get; ensemble; } Je remplis ProductList à partir de la base de données (tous les produits dans la base de données) J'ai une table StoreProduct (store_id, product_id) Si dans editview pour Store.Id = 1, Store.Products List a plusieurs-à-plusieurs produits. Ce que j'essaie de faire ici est, Liste tous les produits dans la liste et le modèle lier cette Listbox à Store.Products – dasmod