Я делаю небольшое тестовое приложение ASP.NET MVC 3 с книжной полкой, где я могу перечислить «Книги», взять взаймы и вернуть их в / из «Ссуды».
Я хочу показать и мои Книги, и мои Заемщики в одном представлении, и поэтому создал ViewModel с именем BooksViewModel, но не могу понять, почему я не могу перечислить свои «Книги». Я могу сделать «foreach (var item in Model)» и только нажать «Книги» внутри него, ни одно из свойств Книги.
Моя модель
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);
}
Моя ViewModel
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; }
}
My View
@model IEnumerable<MyTest.ViewModels.BooksViewModel>
@foreach (var item in Model.Books)
{
@item.Title
}
Будем очень благодарны за любые подсказки или исправления кода!