2014-10-14 4 views
0

저는 Microsoft Visual Studio, ASP에서 프로젝트 작업을하고 있습니다. NET MVC5 (C#) 어디 html 도우미와 강력한 형식화 된보기에서 가격 목록을 표시하려면. 내가 (아니이 경우 그러나)이 프로젝트에 대한 단일 뷰에서 여러 모델에 액세스해야하기 때문에, 내가하는 뷰 모델을 생성과 같이했습니다 당신이 볼 수 있듯이MVC 5 View "Pricelist"라는 내 사전을 찾을 수 없습니다.

public class ReservationViewModel 
{ 
    public Customer Customer { get; set; } 
    public Invoice Invoice { get; set; } 
    public OrderItem OrderItem { get; set; } 
    public Dictionary<string, decimal> Pricelist { get; set; } 

    public ReservationViewModel() { 
    Customer = new Customer(); 
    Invoice = new Invoice(); 
    OrderItem = new OrderItem(); 
    Pricelist = new Dictionary<string, decimal>(); 
    } 
    public void PopulatePricelist() 
    { 
     Pricelist.Add("Select specie", 0); 
     Pricelist.Add("Bird spider", 90); 
     Pricelist.Add("Buggie", 70); 
     Pricelist.Add("Canary", 60); 
     Pricelist.Add("Chinchilla", 70); 
     Pricelist.Add("Cat", 140); 
     Pricelist.Add("Dog", 200); 
     Pricelist.Add("Guinea pig", 80); 
     Pricelist.Add("Hamster", 80); 
     Pricelist.Add("Iguana", 160); 
     Pricelist.Add("Rabbit", 90); 
     Pricelist.Add("Snake", 80); 
    } 
} 

, 난 내 사전라는 이름의 한 "가격표". 내가하고 싶은 일은 그 목록을 반복하고 강력한 형식의보기에 모든 항목을 표시하는 것입니다. 이보기 내에서,이 같은 내 뷰 모델을 참조 :

@model PetsParadise.ViewModels.ReservationViewModel

나는 사전을 통해 반복하는 가장 좋은 방법은이 방법을 사용하는 것입니다 읽었습니다 :

@foreach (KeyValuePair<string, decimal> entry in Pricelist) { 

     <tr> 
      <td>@entry.Value</td> 

     </tr> 

내 문제는 '가격표'는 내용의 오류를 잡아 것입니다 : "이름"가격표 내가 MVC 5 일반적으로 C#을 아주 새로운 해요 "현재 컨텍스트에 존재하지 않는"그래서 난에 대한 appologize 이 질문은 내가 가진 것처럼 그것이 바보 같다고 느낀다. 그러나 나는 지금까지 도처에서보고 있었다. 그리고 대답을 발견 할 것 같지 않다. 또한이 프로젝트에 SQL Server Management Studio 2008 데이터베이스를 구현 했으므로 ViewModel에 표시된 Customer, Invoice 및 OrderItem 클래스가 'Models'폴더 내에 있지 않다는 것을 의미합니다. 이것이 관련성이 있는지 확실하지 않습니다.

+2

'Model.Pricelist'에서 @foreach ...를 사용하십시오. –

답변

2

고객은 Model 속성을 사용하여 가격 목록 회원을 한정해야합니다.

@foreach (KeyValuePair<string, decimal> entry in Model.Pricelist) { 

     <tr> 
      <td>@entry.Value</td> 

     </tr>