【发布时间】:2012-08-13 13:21:46
【问题描述】:
我的模特是
public class SiteConfig
{
public SiteConfig()
{
}
public int IdSiteConfig { get; set; }
public string Name { get; set; }
public byte[] SiteLogo { get; set; }
public string Brands { get; set; }
public string LinkColour { get; set; }
public IEnumerable<SiteBrand> SiteBrands { get; set; }
}
和
public class SiteBrand
{
public int Id { get; set; }
public int SiteId { get; set; }
public int BrandId { get; set; }
public Brand Brand { get; set; }
public SiteConfig SiteConfig { get; set; }
}
public class Brand
{
public int BrandId { get; set; }
public string Name { get; set; }
public IEnumerable<SiteBrand> SiteBrands { get; set; }
}
我遵循数据库第一方法。每个 SiteConfig 记录可以包含一个或多个品牌。所以 Brand 正在保存到另一个名为 SiteBrand 的表中。
SiteBrand 包含对 SiteConfig(on IdSiteConfig) 和 Brand(BrandId) 的外键引用。
当我创建站点配置时,我想将所有可用品牌显示为列表框,用户可以在其中选择一条或多条记录(可能不选择任何品牌)。
但是当我将视图与模型绑定时,如何将列表框绑定到品牌列表以及发布视图时如何获取所选品牌。
我必须将 SiteConfig 对象与所选项目一起保存到数据库中。这是我的数据库图。
这是我保存到数据库的 DAL。
public SiteConfig Add(SiteConfig item)
{
var siteConfig = new Entities.SiteConfig
{
Name = item.Name,
LinkColour = item.LinkColour,
SiteBrands = (from config in item.SiteBrands
select new SiteBrand {BrandId = config.BrandId, SiteId = config.SiteId}).
ToList()
};
_dbContext.SiteConfigs.Add(siteConfig);
_dbContext.SaveChanges();
return item;
}
谁能教教如何绑定列表框并获取选中项。
谢谢。
【问题讨论】:
标签: asp.net-mvc-3 c#-4.0 asp.net-mvc-4 asp.net-mvc-areas ef-database-first