2012-03-20 4 views
1

Я использую nhibernate и хочу создать простой выпадающий список. здесь senario: У меня есть класс продукта, состоящий из имени, типа продукта и его значения вместе с идентификатором Тип продукта является внешний ключ здесь, который является первичным ключом в моем классе product_type Алли нужно сделать, это добавить продукт в таблицах и для этого мне нужно DropDownList, чтобы показать все виды продукцииЧтобы сохранить выбранное значение из выпадающего списка в mvc3 nhibernate

Модель продукта

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 в таблицу продукт в качестве foriegn ключа

Я написал это в моем контроллере

ViewData["prod_types"] = new SelectList(new Product_Service().GetProdType().ToList(), "Product_Type"); 

где GetProdType является функцией списка населяющей В представлении я Populating моего списка, как

@Html.DropDownListFor(Model=>Model.Prod_Types,(IEnumerable<SelectListItem>)ViewData["prod_types"]); 

Но это дает мне сообщение об ошибке, как Там нет ViewData элемент типа «IEnumerable», который имеет ключ »Prod_Types.

Я искал в другом форуме, но не получил правильного ответа Пожалуйста, помогите мне в этом Спасибо!

+0

возможно дубликат [Создание списка в MVC NHibernate] (http://stackoverflow.com/questions/9781576/creating-a -dropdown-list-in-mvc-nhibernate) – Rippo

ответ

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"] 
) 
+0

By ProdTypeId .... какой id указывать ??? один в таблице продуктов, на которой основан мой взгляд, или в таблице Product_Type, из-за которой заполняется мое раскрывающееся меню ..... укажите, пожалуйста. –

+0

Одна на ваш взгляд модель. Тот, который вы хотите использовать позже в своем действии контроллера POST, чтобы прочитать выбранное значение. –

+0

.... увольняют меня, чтобы создать viewmodel для этого ??? Поскольку это снова дает мне ошибку для привязки данных как: «System.String» не содержит свойства с именем «ProductTypeId» –

Смежные вопросы