c# – 具有IEnumerable数据类型的下拉列表

c# – 具有IEnumerable数据类型的下拉列表,第1张

概述我的模型看起来像这样 public IEnumerable<SelectListItem> ProductTypes { get; set; } public ProductContent() { productxEntities db = new productxEntities(); ProductTypes = db.ProductCode 我的模型看起来像这样

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.Dbquery1[System.Web.WebPages.HTML.SelectListItem]' to type 'System.Collections.Generic.IEnumerable1[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数据类型的下拉列表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223187.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存