在Azure应用服务中部署后未显示PagingList视图

vlf7wbxs  于 2023-03-19  发布在  其他
关注(0)|答案(1)|浏览(133)

我正在尝试通过Azure devops部署MVC Web应用程序,在部署到Azure应用程序服务后,分页列表没有显示在我的视图中,但它在我的本地调试中工作正常。

我的视图.cshtml:

<div class="footer-fixed">
    <vc:pager paging-list="@Model.PagingList" />
</div>

它不是寻呼列表项,而是按如下方式传递:在浏览器开发工具中部署后

<vc:pager paging-list="Paging.Razor.PagingList`1[ViewModelClassName]">
</vc:pager>

PagingList.cs来自单独的项目而不是MVC项目

public static PagingList<T> Create<T>(IEnumerable<T> items, int totalRecordCount, int pageSize, int pageIndex, string sortExpression, string defaultSortExpression, string action = "Index") where T : class
        {
            var pageCount = (int)Math.Ceiling(totalRecordCount / (double)pageSize);

            return new PagingList<T>(items.ToList(), pageSize, pageIndex, pageCount, sortExpression, defaultSortExpression, totalRecordCount, action);
        }

有人能帮我一下吗?
谢谢!
我试着在本地复制,但不行。我试着清理/重新部署,但没有运气。

u3r8eeie

u3r8eeie1#

问题与分页列表有关,在将MVC Web应用部署到Azure应用服务后,分页列表未显示。问题在于分页列表作为**“Paging.Razor. PagingList'1 [ViewModelClassName]”而不是分页列表项传递。[0]**
当问题与pageCount变量的计算有关时会发生这种情况,该变量被计算为totalRecordCount除以pageSize
检查传递给Create method are correct的参数。

int pageSize = 3;
            int pageNumber = (page ?? 1);
            return View(GetProjects().ToPagedList(pageNumber, pageSize));

索引视图

此外,当PagingList对象传递到部署的应用程序中的视图时,该对象没有正确序列化。
Another way的方法是,在返回视图的控制器操作中将PagingList对象显式转换为JSON字符串,然后将JSON字符串作为字符串参数传递给视图。
然后,在视图中,可以使用JSON反序列化器(如Newtonsoft.Json)将JSON字符串解析回PagingList对象。

public ActionResult MyAction()
{
    
    var pagingListJson =   JsonConvert.SerializeObject(Model.PagingList);
    ViewBag.PagingListJson = pagingListJson;
    
    return View();
}

在剃刀视图中

@{
    var pagingListJson = ViewBag.PagingListJson;
    var pagingList = JsonConvert.DeserializeObject<PagingList<ViewModelClassName>>(pagingListJson);
}
<div class="footer-fixed">
    <vc:pager paging-list="@pagingList" />
</div>

有关详细信息,请参阅paging-search-sortingpaging.

相关问题