選択可能な値を複数選択ボックスに入力する方法について、Google と Stackoverflow で多くのソリューションを検索してきました。しかし、運がありません。
public class PriceObj
{
public int ID { get; set; }
public decimal Price { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public virtual ICollection<PriceGroupObj> PriceGroup {get; set;}
}
public class PriceGroupObj
{
public int ID { get; set; }
public string Name { get; set; }
}
public class PriceDatabaseContext : DbContext
{
public DbSet<PriceObj> PriceObjs { get; set; }
public DbSet<PriceGroupObj> PriceGroupObjs { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();
modelBuilder.Entity<PriceObj>()
.HasMany(g => g.PriceGroup)
.WithMany()
.Map(t => t.MapLeftKey("GroupID").MapRightKey("PriceID").ToTable("PriceGroup"));
}
}
次に、価格オブジェクトの編集ビューで、価格に割り当てられたすべての価格グループを選択できるようにしたいと考えています。しかし、私はそれが機能していません.MultiSelectボックスに既に作成されているすべてのグループを入力していません.
これは、Razor veiw で使用しているコードです。
@Html.ListBoxFor(model => model.PriceGroup, Model.PriceGroup.Select(pg => new SelectListItem { Text = pg.Name, Value = pg.ID.ToString() }), new { Multiple = "multiple" })
select 要素は Web サイトに表示されますが、選択する値はありません。
私のチェーンが落ちているところを整理するのを手伝ってください。