Nat*_*apa 3 c# model-view-controller asp.net-mvc asp.net-mvc-3
我的模型看起来像这样
    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)
这是错误
无法转换类型为'System.Data.Entity.Infrastructure.DbQuery
1[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);
    } 
vcs*_*nes 10
你应该ToList在你的EF查询中的某个地方打电话.否则,您将直接向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的构造函数中使用这种代码.其他人应该将其分配给模型.
然后,您应该可以在视图中删除您的演员表.
| 归档时间: | 
 | 
| 查看次数: | 14200 次 | 
| 最近记录: |