mvc 기술을 도입하려고하는데 'pro asp.net mvc 3 framework '. 나는 한 곳에서 달라 붙어서 지금은 어떻게 풀어야할지 모르겠다. 보통 웹 양식과 많이 다르니까. 여기에 오류가 있습니다 : 사전에 전달 된 모델 항목의 형식이 '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의
viewmodel 대신보기로 엔티티 프레임 워크 오브젝트를 전달합니다. – asawyer
페이지가'SportsStore.WebUI.Models.ProductsListViewModel'에서 상속 받았지만'SportsStore.Domain.Entities.Product' –