2011-01-27 2 views
4

"Books"를 나열 할 수있는 책꽂이가있는 작은 ASP.NET MVC 3 테스트 응용 프로그램을 만들고 대여 항목을 "Loaners"로/.MVC에서 두 개의 목록을 모델로 보내려면 어떻게합니까?

하나의보기에 내 책과 내 Loaners를 모두 표시하고 BooksViewModel이라는 ViewModel을 만들었지 만 "Books"를 나열 할 수없는 이유를 알 수 없습니다. "foreach (모델의 var 항목)"를 수행하고 그 안에 "Books"만 터치 할 수 있으며 Books 속성이 없습니다.

내 모델

namespace MyTest.Models 
{ 
    /// <summary> 
    /// Represents a book 
    /// </summary> 
    public class Book 
    { 
     public int ID { get; set; } 
     public string Title { get; set; } 
     public string Author { get; set; } 
     public string ISBN { get; set; } 
     public virtual Loaner LoanedTo { get; set; } 
    } 

    /// <summary> 
    /// Represents a Loaner 
    /// </summary> 
    public class Loaner 
    { 
     public int ID { get; set; } 
     public string Name { get; set; } 
     public virtual ICollection<Book> Loans { get; set; } 
    } 

    /// <summary> 
    /// Bookshelf Database Context 
    /// </summary> 
    public class BookshelfDb : DbContext 
    { 
     public DbSet<Book> Books { get; set; } 
     public DbSet<Loaner> Loaner { get; set; } 
    }  
} 

내 컨트롤러 :

BookshelfDb bookshelf = new BookshelfDb(); 

    public ActionResult Index() 
    { 
     var books = from book in bookshelf.Books 
         select book; 

     var loaners = from loaner in bookshelf.Loaner 
         select loaner; 

     var bookViewModel = new BooksViewModel(books.ToList(),loaners.ToList()); 

     return View(bookViewModel); 
    } 

내 뷰 모델

public class BooksViewModel 
{ 
    public BooksViewModel(List<Book> books, List<Loaner> loaners) 
    { 
     this.Books = books; 
     this.Loaners = loaners; 
    } 
    public List<Book> Books { get; private set; } 
    public List<Loaner> Loaners { get; private set; } 
} 

내보기

@model IEnumerable<MyTest.ViewModels.BooksViewModel> 
@foreach (var item in Model.Books) 
{ 
    @item.Title 
} 
,

힌트 또는 코드 수정이 많은 도움이 될 것입니다!

답변

5

보기 선언에 모델 유형이 잘못되어있는 것처럼 보입니다. 시도 :

@model MyTest.ViewModels.BooksViewModel 

@foreach (var item in Model.Books) 
{  
    @item.Title 
} 
+0

오! 니가 끝냈어! 감사! –

관련 문제