我正在使用nhibernate并想创建一个简单的下拉列表 这是senario: 我有一个产品类,包括名称,产品类型,以及它的值和id 产品类型是外键,这是我的Product_Type类中的主键 Alli需要做的是在表格中添加产品 为此我需要一个下拉列表来显示所有类型的产品
产品型号
public class Product_Type
{
public virtual int Prod_Type_Id { get; set; }
[Required]
public virtual string Prod_Types { get; set; }
}
public class Product
{
public virtual int Product_Id { get; set; }
[Required]
public virtual string Product_Name { get;set; }
public virtual Product_Type Prod_Types { get; set; }
}
我创建了映射文件,其中我将Product_Types映射到表Product for foriegn key
我在我的控制器中写了这个
ViewData["prod_types"] = new SelectList(new Product_Service().GetProdType().ToList(), "Product_Type");
其中GetProdType是一个填充列表的函数 在视图中,我将列表填充为
@Html.DropDownListFor(Model=>Model.Prod_Types,(IEnumerable<SelectListItem>)ViewData["prod_types"]);
但它给了我一个错误 没有类型为'IEnumerable'的ViewData项具有键'Prod_Types'。
我在其他论坛搜索但没有得到正确的答案 请帮帮我 谢谢!!
答案 0 :(得分:1)
您在ViewData中使用与绑定属性相同的键。试试这样:
ViewData["AvailableProductTypes"] = new SelectList(
new Product_Service().GetProdType().ToList(),
"Prod_Type_Id",
"Prod_Types"
);
并在视图中:
@model Product_Type
...
@Html.DropDownListFor(
x => x.Prod_Type_Id,
(IEnumerable<SelectListItem>)ViewData["AvailableProductTypes"]
)