2011-01-27 91 views
4

我正在做一個小型的ASP.NET MVC 3測試應用程序,帶有一個書架,我可以列出「書籍」,並將這些列表從「Loaners」 。我如何在MVC中發送兩個列表作爲模型

我想在一個視圖中顯示我的書籍和我的Loaners,併爲此創建了一個名爲BooksViewModel的ViewModel,但我無法弄清楚爲什麼我無法列出我的「Books」。我可以做「foreach(模型中的var item)」,只觸摸裏面的「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

哦,快點!你釘了它!謝謝! – 2011-01-27 10:00:34

相關問題