public IEnumerable<SelectListItem> ProductTypes { get; set; } public ProductContent() { productxEntitIEs db = new productxEntitIEs(); ProductTypes = db.ProductCodes.Select(c => new SelectListItem { Value = c.product_type.ToString(),Text = c.code.ToString() }); }
当我尝试将它用于DropDownList时,我得到一个错误,说明转换是错误的…在MVC3 Razor C#中使用DB的列表填充DDL的正确方法是什么,我对此模型类型有一个紧密耦合的视图.
@HTML.DropDownList("ProductTypes",(IEnumerable<SelectListItem>) Model.ProductTypes)
这是错误
Unable to cast object of type ‘System.Data.Entity.Infrastructure.Dbquery
1[System.Web.WebPages.HTML.SelectListItem]' to type 'System.Collections.Generic.IEnumerable
1[System.Web.Mvc.SelectListItem]’.
这是我的控制器
public ActionResult Create() { ProductContent productviewmodel = new ProductContent(); return PartialVIEw("../PartialVIEws/NewProduct",productviewmodel); }解决方法 您应该在EF查询中的某处调用ToList.否则,您将直接向VIEw返回queryable.
可能是这样的:
public ProductContent(){ productxEntitIEs db = new productxEntitIEs(); ProductTypes = db.ProductCodes.ToList().Select(c => new SelectListItem { Value = c.product_type.ToString(),Text = c.code.ToString() });}
正如我在评论中提到的那样;我不鼓励在Model的构造函数中使用这种代码.其他人应该将其分配给模型.
然后,您应该可以在视图中删除您的演员表.
总结以上是内存溢出为你收集整理的c# – 具有IEnumerable数据类型的下拉列表全部内容,希望文章能够帮你解决c# – 具有IEnumerable数据类型的下拉列表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)