複数の商品を持つStoreクラスをHtml.Listboxにバインドしたいとします。 編集ストアモードでは、ストアの商品が選択されているすべての商品をHtml.Listboxに表示します。私はストアをバインドすることができませんでした。リストボックスへの製品MVCモデルILIST データをHtml.Listboxにバインドする
My class structure;
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>
}
マイコン;
public ViewResult Edit()
{
var editstore = new StoreEditView();
editstore.Products = new List<Product> {new Product() {Id = 1, Name="Example"}};
return View(editstore);
}
マイビュー;
<%=Html.ListBox("Products", Model.ProductList)%>
この場合、リストボックスでproduct.Id = 1を選択する必要があります。これまで私はそれをすることができませんでした。 私は試しましたが、
<%=Html.ListBox("Product.Id", Model.ProductList)%>
<%=Html.ListBox("Products.Id", Model.ProductList)%>
ちょうどうまくいきませんでした。
Model.Productlistはすでに移入ドロップダウン。私の問題は、ListBox( "Products")はStore.Productsリストと関係がないことです。 – dasmod
私はこの問題を理解していません。 Model.ProductListをどのように配置していますか? Model.Productsと一致する必要があり、そうでない場合、私はあなたがそれを移入するルーチンを変更する必要があると仮定することができます。 – grenade
ok、Model.ProductListはです。 public MultiSelectList ProductList {get;セット; } データベースからProductListを取り込みます(データベース内のすべての商品) StoreProductテーブル(store_id、product_id)を持っています Store.Id = 1のeditviewの場合、Store.Products Listには多対多の製品があります。 私がここでやろうとしているのは、リストボックスにすべての製品をリストし、このリストボックスをStoreにバインドするモデルです。製品 – dasmod