我的asp.net proyect遇到了麻烦。我想分页我的桌子,但我无法启动我的网站。
这就是问题所在:
我用这段代码修改控制器
public ActionResult Index(int? page)
{
var firmas = from f in db.Firmas select f;
if (Request.HttpMethod != "GET")
{
page = 1;
}
int pageSize = 2;
int pageNumber = (page ?? 1);
return View(firmas.ToPagedList(pageSize, pageNumber));
}
我把它变成了cshtml索引
@*@model IEnumerable<actiTest2.Context.Firmas>*@
@model PagedList.IPagedList<actiTest2.Controllers.FirmasController>
@using PagedList;
@using PagedList.Mvc;
这就是重点,如果我调用模型IEnumerable,程序崩溃原因需要IPagedList,但如果我调用IPagedList程序说'FirmasController'不包含我的模型显示的定义。
我该怎么办?使用get / set errs合并控制器和自动生成的代码?
提前致谢
编辑:在应用'smoksnes'解决方案后,我遇到了一个新问题:
答案 0 :(得分:0)
将视图中的模型更改为(第一行):
@model PagedList.IPagedList<actiTest2.Context.Firmas>
当您使用@model PagedList.IPagedList<actiTest2.Controllers.FirmasController>
时,您试图将控制器用作模型。
所以你的观点应该是这样的:
@using PagedList
@using PagedList.Mvc
@model PagedList.IPagedList<actiTest2.Context.Firmas>
<p> Content here </p>
在你的控制器中:
public ActionResult Index(int? page)
{
// Order the collection before skipping.
var firmas = db.Firmas.OrderBy(x => x.Name); // Or some property.
if (Request.HttpMethod != "GET")
{
page = 1;
}
int pageSize = 2;
int pageNumber = (page ?? 1);
return View(firmas.ToPagedList(pageSize, pageNumber));
}
有关此处错误的更多信息:
The method 'OrderBy' must be called before the method 'Skip' Exception
该异常意味着如果您申请,您始终需要一个已排序的输入 跳过,同样在用户没有单击要排序的列的情况下 由
特别针对ToPagedList()
。