2014-05-19 2 views
0

ASP MVC 4의 웹 프로젝트를 수행 중입니다.
강력한 형식의 (모델 : 제품)보기 (ProductIndex.cshtml)가 있으며이보기의 모든 판매자 목록을 표시하려고합니다.
내 모델에 속하지 않는 객체를 표시하는 방법은 무엇입니까?

최상의 접근 방법은 무엇입니까?
- 내 제품 클래스 (Icollection)에 새 속성을 만드시겠습니까?
Product가 상인 목록을 가지고 있지 않기 때문에이 접근법을 정말 좋아하지 않습니다 ...

- 형식화 된 부분보기 (IEnumerable)를 만들고 내 ProductIndex View에서 ViewData 개체를 매개 변수로 사용하여 호출하십시오. ?
이 방법으로 목록 상자에 모델 (IEnumerable)을 표시 할 수 있는지 확실하지 않습니다 ... 목록 상자에 모델이 아닌 속성 만 채울 수 있습니다 ...
Tell 나 pls!



public class Product 
    { 
     public int ProductID { get; set; } 
     public string Name { get; set; } 
     public string Description { get; set; } 
     public int MerchandID { get; set; } 


    } 

public class ProductViewModel 
    { 
     public int ProductID { get; set; } 
     public string Name { get; set; } 
     public string Description { get; set; } 
     public int MerchandID { get; set; } 

     public ICollection<Merchant> Lesmarchands { get; set; } 
    } 
+1

viewmodel mate를 사용하십시오. – Larry

답변

0

나는 그것이 나쁜 제품보기 모델과 연관된 상인의 목록을 가지고 표시되지 않습니다 감사합니다. 특히 둘 모두가보기의 필요를 충족시키는 데 필요한 경우. 필자는 실제 도메인 모델 위에 추상 모델로 뷰 모델을 만드는 경향이 있습니다.

물론 약간 다른 접근법은 Ajax를 통해 판매자를로드하고 모델에서 제품과의 연결을 끊는 것입니다.

+0

아니요 제품 모델에 상인 목록을 갖는 것이 좋지 않다고 말했지만 VIEW 모델 제품을 만드는 것을 생각하지 않았습니다 ... 제품 모델을 View Model로 사용했습니다 ... 내가 생각하는 최선의 아이디어가 아닙니다. –

1
public class ProductViewModel 
{ 
    public Product Product {get;set;} 
    public List<Merchant> Merchants {get;set;} 
} 
+0

고마워요 ... 매우 명확합니다. –

+0

이 코드에 오류가 있습니다. ecause 뷰 모델 클래스에 ID 속성이 있어야 Entity에서 내 Product 개체의 모든 속성을 복사합니다. 이 클래스는 Product 속성 대신 사용됩니다. –

+0

그렇게하지 마십시오. Product.ID를 사용하고 클라이언트 측에서 html 요소의 이름은 이어야합니다. – Larry

관련 문제