Сохранить выбранное значение из выпадающего списка в mvc3 nhibernate - PullRequest
1 голос
/ 20 марта 2012

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

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

  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 как внешний ключ

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

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

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

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

Но это дает мне ошибку как Нет элемента ViewData типа 'IEnumerable', который имеет ключ 'Prod_Types'.

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

1 Ответ

1 голос
/ 20 марта 2012

Вы использовали тот же ключ в 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"]
)
...