的模型項目我正在嘗試進入mvc技術,並正在閱讀一本書'pro asp.net mvc 3 framework '從apress。 我被困在一個地方,我不知道如何解決它,因爲這是如此不同,然後普通的網頁形式。 這是我得到的錯誤:傳遞到字典中的模型項目類型爲'System.Data.Entity.Infrastructure.DbQuery`1 [SportsStore.Domain.Entities.Product]',但該字典需要模型項目類型'SportsStore.WebUI.Models.ProductsListViewModel'。傳入字典的模型項目類型爲'',但是此字典需要'''
我不知道到底是我需要貼上的代碼,但是這是我有:
查看:
@model SportsStore.WebUI.Models.ProductsListViewModel
@{
ViewBag.Title = "Products";
}
<h2>List</h2>
@foreach (var s in Model.Products)
{
<div class="item">
<h3>@s.Name</h3>
@s.Description
<h4>@s.Price.ToString("c")</h4>
</div>
}
<div class="pager">
@Html.PageLinks(Model.PagingInfo, x => Url.Action("List", new { page = x }));
</div>
產品控制器:
namespace SportsStore.WebUI.Controllers
{
public class ProductController : Controller
{
public int PageSize = 4;
private IProductsRepository repository;
public ProductController(IProductsRepository productsRepository)
{
repository = productsRepository;
}
public ViewResult List(int page=1)
{
ProductsListViewModel viewModel = new ProductsListViewModel
{
Products = repository.Products
.OrderBy(p => p.ProductID)
.Skip((page - 1) * PageSize)
.Take(PageSize),
PagingInfo = new PagingInfo
{
CurrentPage = page,
ItemsPerPage = PageSize,
TotalItems = repository.Products.Count()
}
};
return View(repository.Products.OrderBy(p => p.ProductID).Skip((page - 1) * PageSize).Take(PageSize));
}
}
}
請讓我知道你是否需要更多信息。 謝謝,Laziale
將實體框架對象傳遞給視圖而不是視圖模型。 – asawyer
您的頁面從'SportsStore.WebUI.Models.ProductsListViewModel'繼承,但您傳遞給它一個'SportsStore.Domain.Entities.Product' –