gpt4 book ai didi

c# - Razor 中只有一个局部 View 的分页

转载 作者:行者123 更新时间:2023-11-30 20:51:10 24 4
gpt4 key购买 nike

我有 3 个类的 View 模型

    public IEnumerable<Nazivi_grupa> ngrupa { get; set; }
public IEnumerable<Grupe_radova> gradova { get; set; }
public IEnumerable<Pozicije> pozicije { get; set; }

局部 View partPozicijeView.cshtml

@model PagedList.IPagedList<WebApplication3.ViewModels.mainViewModel>
@using PagedList.Mvc;

@{ some code to show table }

和主视图index.cshtml

@model WebApplication3.ViewModels.mainViewModel
@using PagedList.Mvc;
<tr>
<td>Category&nbsp;</td>
<td>&nbsp;:</td>
<td><div id="KnjigeNormativa">@Html.Partial("partKnjigeNormativaView", Model)</div> </td>
</tr>
<tr>
<td>Sub - Category&nbsp;</td>
<td>&nbsp;:</td>
<td><div id="GrupeRadova"> @Html.Partial("partGrupeRadovaView", Model)</div></td>
</tr>
<tr>
<td>Products&nbsp;</td>
<td>&nbsp;:</td>
<td><div id="Pozicije"> @Html.Partial("partPozicijeView", Model)</div></td>
</tr>

调用 3 个部分 View 以在级联下拉列表中显示前 2 个表,在表中显示第 3 个表 (pozicije)。

现在我正在尝试向该表添加分页,但无论如何,我都会遇到错误

The model item passed into the dictionary is of type 'WebApplication3.ViewModels.mainViewModel', but this dictionary requires a model item of type 'PagedList.IPagedList`1[WebApplication3.ViewModels.mainViewModel]'.

在第 3 次局部 View 调用中。

这里还有 Controller 的代码

    public ActionResult SelectPozicije(string SelectedPosId, int? pnum)
{


int pageNumber = (pnum ?? 1);

mainViewModel mv = new mainViewModel();
mv.pozicije = new List<Pozicije>();

// mv.pozicije = (from p in mainViewModel.getPozicije()
// where p.grupa == SelectedPosId
// select p).ToPagedList(pageNumber, 25);
mv.pozicije = (from p in mainViewModel.getPozicije()
where p.grupa == SelectedPosId
select p).ToList();


return PartialView("partPozicijeView", mv);
}

我尝试(注释代码)返回 .ToPagedList() 但没有成功...

有人能告诉我怎么做吗?

最佳答案

试试这段代码

//your main model
namespace WebApplication3.ViewModels
{
public class mainViewModel
{
public IEnumerable<Nazivi_grupa> ngrupa { get; set; }
public IEnumerable<Grupe_radova> gradova { get; set; }
public IEnumerable<Pozicije> pozicije { get; set; }
}
}

你的主视图

//your main view Index.cshtml
@model WebApplication3.ViewModels.mainViewModel
<tr>
<td>Category&nbsp;</td>
<td>&nbsp;:</td>
<td><div id="KnjigeNormativa">@Html.Partial("partKnjigeNormativaView", Model.ngrupa)</div> </td>
</tr>
<tr>
<td>Sub - Category&nbsp;</td>
<td>&nbsp;:</td>
<td><div id="GrupeRadova"> @Html.Partial("partGrupeRadovaView", Model.gradova)</div></td>
</tr>
<tr>
<td>Products&nbsp;</td>
<td>&nbsp;:</td>
<td><div id="Pozicije"> @Html.Partial("partPozicijeView", Model.pozicije)</div></td>
</tr>

你的主 Controller

public ActionResult Index(string SelectedPosId, int? page)
{
int pageNumber = (page ?? 1);
mainViewModel mv = new mainViewModel();
mv.ngrupa = //code for ngrupa list
mv.gradova = //code for ngrupa list
mv.pozicije = (from p in mainViewModel.getPozicije()
where p.grupa == SelectedPosId
order by p.id //order column here
select p).ToPagedList(pageNumber, 25);
return View(mv);
}

你的局部 View

//your paged partial view partPozicijeView.cshtml
@model PagedList.IPagedList<WebApplication3.ViewModels.Pozicije>
@using PagedList.Mvc;

@{ some code to show table }
@Html.PagedListPager((IPagedList)ViewBag.ResultsPage,


page => Url.Action("Index", "ControllerName", new { SelectedPosId = YourPosId, page = page},PagedListRenderOptions.PageNumbersOnly)

关于c# - Razor 中只有一个局部 View 的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21990903/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com