2012-03-20 7 views
1

나는 nhibernate를 사용하고 간단한 드롭 다운 목록을 만들고 싶습니다. 여기에 senario가 있습니다 : 제품 클래스는 이름, 제품 유형 및 ID와 함께 값으로 구성되어 있습니다 제품의 유형 ALLI이해야 할 내 제품 _ 클래스에 기본 키가 테이블 에 제품을 추가하고 그것을 위해 전 제품의 모든 유형을 보여주기 위해 드롭 다운리스트가 필요하다 여기 외래 키는 제품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; } 
    } 

나는 내가 foriegn 키

내 컨트롤러에서이 쓴 테이블 제품에 Product_Types 매핑 매핑 파일을 생성 GetProdType 내가 나의 목록을 채우는 오전보기에서 목록 을 채우는 함수이다

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

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

그러나 유형 키 'Prod_Types을'이 '를 IEnumerable'의 어떤을 ViewData 항목이 없기 때문에 그것은 나에게 오류를주고있다.

다른 포럼에서 검색했지만 적절한 대답을 얻지 못했습니다. 도와주세요. 감사합니다!

+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

ProdTypeId에 ​​의해 ... 어느 id가 u를 나타내는가 ??? 내보기가 기반이거나 내 드롭 다운이 채워지는 Product_Type 테이블에서 하나를 지정하십시오. –

+0

보기 모델에 하나. 나중에 POST 컨트롤러 조치에서 사용하여 선택한 값을 읽으려는 것. –

+0

.... 나를 위해 뷰 모델을 만들려면 usuggesting ??? 이것은 다시 데이터 바인딩에 대한 오류를 제공하기 때문에 'System.String'에 'ProductTypeId'라는 이름의 속성이 포함되어 있지 않습니다. –

관련 문제