我一直在 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"));
}
}
然后我希望能够在价格对象的编辑视图中为价格选择所有适当的价格组。但我没有让它工作,它没有填充多选框中所有已经创建的组。
这是我在 Razor 视图中使用的代码:
@Html.ListBoxFor(model => model.PriceGroup, Model.PriceGroup.Select(pg => new SelectListItem { Text = pg.Name, Value = pg.ID.ToString() }), new { Multiple = "multiple" })
选择元素显示在网站上,但没有可供选择的值。
请帮我整理一下,我的链条掉在哪里了。