【发布时间】:2011-07-10 21:59:29
【问题描述】:
我的模型是这样的
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);
}
【问题讨论】:
-
你得到了什么错误?错误的确切文本是什么?
-
将该逻辑放入您的模型中并不是一个好主意。它应该在其他地方。您还应该发布控制器的代码以查看 Action 如何返回模型。
-
发布错误时我发现错误是由于没有使用 System.Web.Mvc 来选择项目列表,但现在我有一个新错误 LINQ to Entities 无法识别方法 'System.String ToString()' 方法,并且该方法不能翻译成 store 表达式。
标签: c# asp.net-mvc model-view-controller asp.net-mvc-3