asp.net mvc return 查看分页列表
asp.net mvc return view pagedlist
我有以下操作结果
public ActionResult TheMostClickedEmailReport(int ID, int gonderim,int? page)
{
int pageIndex = page ?? 1;
int pagesize = 10;
MailingClickService mailingclickservice = new MailingClickService();
TemplateLinkService tmpservice = new TemplateLinkService();
int FirmID = (int)Session["FirmID"];
var linkler = mailingclickservice.GetByCriteria(x => x.MailingID == ID && x.Gonderim == gonderim && x.Mailing.FirmUser.FirmID == FirmID).IslemSonucu.GroupBy(x => x.MailingEmail).ToPagedList(pageIndex, pagesize);
ViewBag.gonderim = gonderim;
ViewBag.MailingID = ID;
List<EmailLinkClickReport> emailcliklistreport = new List<EmailLinkClickReport>();
if (linkler.Count() > 0)
{
foreach (var item in linkler)
{
EmailLinkClickReport emaillinkclick = new EmailLinkClickReport();
emaillinkclick.Key = item.Key;
emaillinkclick.TotalClicksCount = item.Select(x => x.MailingEmail).Count();
emailcliklistreport.Add(emaillinkclick);
}
return View(emailcliklistreport);
}
else
{
return RedirectToAction("MailingReport", "Report", new { id = ID, gonderim = gonderim });
}
}
linkler 使用 foreach 从 linkler 获得 50 data.I select 10 条数据(链接器中的项目)
我想select var linkler = mailingclickservice.GetByCriteria(x => x.MailingID == ID && x.Gonderim == gonderim && x.Mailing.FirmUser.FirmID == FirmID).IslemSonucu.GroupBy(x => x.MailingEmail).ToPagedList(pageIndex, pagesize);
中的10个数据
部分
但是我不知道如何通过 returning 视图将链接器转换为 IPagedList?
如果我 return 下面的代码
return View(emailcliklistreport);
喜欢下面
return View(emailcliklistreport.ToPagedList(pageIndex,pagesize);
这对我来说不合逻辑,因为我 return 列出了两次
你有什么建议和建议我更改我的代码。
我如何 return 链接器通过转换 ToPagedList 查看?
ToPagedList
应该是您在将数据集返回到视图之前对其执行的最后一个操作。就目前而言,您将完全丢弃 PagedList
并仅将 List<EmailLinkClickReport>
返回到视图。
另外,值得一提的是,无论如何,这里不需要 foreach 循环,因为您可以使用 LINQ 的 Select
方法来转换数据集。尝试:
var linkler = mailingclickservice
.GetByCriteria(x =>
x.MailingID == ID &&
x.Gonderim == gonderim &&
x.Mailing.FirmUser.FirmID == FirmID)
.IslemSonucu.GroupBy(x => x.MailingEmail)
.Select(x => new EmailLinkClickReport
{
Key = x.Key;
TotalClicksCount = x.Count();
})
.ToPagedList(pageIndex, pagesize);
我添加了自由间距以使其更易于阅读。唯一的新部分是 Select
调用。还从 TotalClickCounts
中删除了 Select(x => x.MailingEmail)
jazz,因为它只会增加额外的处理时间。
我有以下操作结果
public ActionResult TheMostClickedEmailReport(int ID, int gonderim,int? page)
{
int pageIndex = page ?? 1;
int pagesize = 10;
MailingClickService mailingclickservice = new MailingClickService();
TemplateLinkService tmpservice = new TemplateLinkService();
int FirmID = (int)Session["FirmID"];
var linkler = mailingclickservice.GetByCriteria(x => x.MailingID == ID && x.Gonderim == gonderim && x.Mailing.FirmUser.FirmID == FirmID).IslemSonucu.GroupBy(x => x.MailingEmail).ToPagedList(pageIndex, pagesize);
ViewBag.gonderim = gonderim;
ViewBag.MailingID = ID;
List<EmailLinkClickReport> emailcliklistreport = new List<EmailLinkClickReport>();
if (linkler.Count() > 0)
{
foreach (var item in linkler)
{
EmailLinkClickReport emaillinkclick = new EmailLinkClickReport();
emaillinkclick.Key = item.Key;
emaillinkclick.TotalClicksCount = item.Select(x => x.MailingEmail).Count();
emailcliklistreport.Add(emaillinkclick);
}
return View(emailcliklistreport);
}
else
{
return RedirectToAction("MailingReport", "Report", new { id = ID, gonderim = gonderim });
}
}
linkler 使用 foreach 从 linkler 获得 50 data.I select 10 条数据(链接器中的项目)
我想select var linkler = mailingclickservice.GetByCriteria(x => x.MailingID == ID && x.Gonderim == gonderim && x.Mailing.FirmUser.FirmID == FirmID).IslemSonucu.GroupBy(x => x.MailingEmail).ToPagedList(pageIndex, pagesize);
中的10个数据
部分
但是我不知道如何通过 returning 视图将链接器转换为 IPagedList?
如果我 return 下面的代码
return View(emailcliklistreport);
喜欢下面
return View(emailcliklistreport.ToPagedList(pageIndex,pagesize);
这对我来说不合逻辑,因为我 return 列出了两次
你有什么建议和建议我更改我的代码。
我如何 return 链接器通过转换 ToPagedList 查看?
ToPagedList
应该是您在将数据集返回到视图之前对其执行的最后一个操作。就目前而言,您将完全丢弃 PagedList
并仅将 List<EmailLinkClickReport>
返回到视图。
另外,值得一提的是,无论如何,这里不需要 foreach 循环,因为您可以使用 LINQ 的 Select
方法来转换数据集。尝试:
var linkler = mailingclickservice
.GetByCriteria(x =>
x.MailingID == ID &&
x.Gonderim == gonderim &&
x.Mailing.FirmUser.FirmID == FirmID)
.IslemSonucu.GroupBy(x => x.MailingEmail)
.Select(x => new EmailLinkClickReport
{
Key = x.Key;
TotalClicksCount = x.Count();
})
.ToPagedList(pageIndex, pagesize);
我添加了自由间距以使其更易于阅读。唯一的新部分是 Select
调用。还从 TotalClickCounts
中删除了 Select(x => x.MailingEmail)
jazz,因为它只会增加额外的处理时间。