我正在學習C#ASP.NET MVC 3中的ViewModels,並且我被困在從ViewModel顯示數據的視圖中。ASP.NET MVC3 ViewModel - 困惑
的模式:
public class Author
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Book> Books { get; set; }
}
public class Book
{
public int Id { get; set; }
public int AuthorId { get; set; }
public string Title { get; set; }
public decimal Price { get; set; }
}
在我的索引視圖我想告訴作者和書籍的一般列表。我已經做了視圖模型此:
public class BookIndexViewModel
{
public List<Book> Books { get; set; }
public List<Author> Authors { get; set; }
}
這裏是我的指數()操作方法從控制器:
public ViewResult Index()
{
BookIndexViewModel viewModel = new BookIndexViewModel();
viewModel.Authors = db.Authors.ToList();
// leaving Books empty for now
return View(viewModel);
}
我有一個強類型索引視圖,我想顯示作者列表:
@model IEnumerable<NewBookStore.ViewModels.BookIndexViewModel>
@foreach (var author in Model.Authors) {
<tr>
<td>
@author.Name
</td>
</tr>
}
這是Model.Authors不起作用的部分。當我鍵入模型。並等待智能感知顯示作者,它沒有列出。錯誤說明是:
「System.Collections.Generic.IEnumerable」不包含關於'作者的定義,並沒有擴展方法「作者的接受型的第一參數「System.Collections.Generic.IEnumerable '可以找到(是否缺少using指令或程序集引用?)
視圖中的模型不應該是IEnumerable。您正在發送一個包含2個列表的單個模型。您沒有發送視圖模型列表。 – keshav 2012-07-20 15:52:38