【发布时间】:2011-02-13 15:35:44
【问题描述】:
您好,我想知道是否有人对我在我的 asp.net mvc3 网站中实现 pagedlist 代码 (https://github.com/TroyGoode/PagedList) 时遇到的问题有所了解。这是我正在尝试做的细节:
我使用以下详细信息创建了一个视图模型:
public class ProductViewModelList
{
public List<Product> ProductBrowse { get; set; }
public int NumberOfProducts { get; set; }
public List<Category> CategoryModel { get; set; }
}
然后是一个控制器,它保存着我要传递给视图的信息:
public ActionResult List(int categoryid, int? page)
{
const int defaultPageSize = 20;
int currentPageIndex = page.HasValue ? page.Value - 1 : 0;
var categoryModel = db.Category.Include("Product").Single(c => c.CategoryId == categoryid);
var paginatedmodel = categoryModel.Product.ToPagedList(currentPageIndex, defaultPageSize);
var viewModel = new ProductViewModelList
{
ProductBrowse = paginatedmodel.ToList(),
NumberOfProducts = categoryModel.Product.Count()
};
return View(viewModel);
最后是开头的视图:
@inherits System.Web.Mvc.WebViewPage<IPagedList<Social.ViewModels.ProductViewModelList>>
@using Social.Helpers;
@using System.Web.Mvc.Html
并以这种方式使用寻呼机创建一个 foreach:
@foreach (var item in Model)
{
<div class="result">
<div class="info_result"><h2><a>@Html.ActionLink(Html.TruncateText(item.Title, 25), "Details", new { id = item.ProductId })</a></h2><p><a>@Html.ActionLink(Html.TruncateText(item.Description, 180), "Details", new { id = item.ProductId })</a></p<a>@String.Format("{0:dddd, MMMM d, yyyy}", item.CreatedOn)</a></div>
<div class="paginacion">@Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount)</div>
信息:1-我正在使用
@inherits System.Web.Mvc.WebViewPage<IPagedList<Social.ViewModels.ProductViewModelList>>
因为我需要将信息从 IPagedList 和 ProductViewModelList 传递到视图。
2- 如果我通过 <IPagedList<Social.ViewModels.ProductViewModelList> 之类的继承,我会收到 IPagedList 属性的完整智能感知,但对于 Viewmodels NumberofProducts、ProductBrowse、CategoryModel 我只收到它们的名称,而不是像 ProductBrowse.ProductId 这样的其他属性。
3- 我想显示以下类型的 URL: http://www.domain.com/Controller/List?categoryId=2&page=1
4- 我不知道我必须做什么才能包含
的对象值Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount, ObjectValues for categoryId=2)
对不起,如果这是一团糟,我已尽力解释。 提前致谢。
【问题讨论】:
-
请不要在标题中大喊大叫。
-
对不起,我不是故意的,我会编辑的。 brgds!
标签: c# asp.net-mvc-3 viewmodel pagedlist