【问题标题】:MVC3 / Partial Views / Multiple Paginated ListsMVC3 / 部分视图 / 多个分页列表
【发布时间】:2012-06-26 22:11:24
【问题描述】:

如何在我的主页上呈现两个分页列表?

我愿意尽其所能 - 如果这意味着要调整我的代码以适应解决方案或调整现有解决方案以适应我的代码。

我已经使用部分视图成功地将一个分页列表呈现到主页。

看看我的代码: 意见 ..首页 > 索引.cshtml

@foreach (var m in Model.First)
{
    Html.RenderPartial("FirstSummary", m);
}
<div class="pager">
    @Html.PageLinks(Model.PagingInfo, x => Url.Action("Index", new { page = x }))
</div>

观看次数 ..Shared > FirstSummary.cshtml

@model MovinMyStuff.Domain.Entities.First
@{
    if (@Model.IsActive)
    {
    <div class="first-list-item">
        <ul>
            <li>
                <span class="first-name">
                    @Model.Property.ToString() 
                    @Model.Property.ToString()
                    @Model.Property.ToString() -
                    @Model.Property.ToString() 
                    @Model.Property.ToString()
                    @Model.Property.ToString()
                </span>
            </li>
            <li>
                @Html.ActionLink("Details", "Details", "First", new { area = "", id = @Model.FirstId }, new { @class = "button" })
        </li>
    </ul>
</div>
}   

}

控制器 > HomeController.cs

        public ViewResult Index(int page = 1)
    {
        FirstListViewModel viewModel = new FirstListViewModel
        {
            First = repository.First
            .OrderByDescending(m => m.FirstId)
            .Skip((page - 1) * PageSize)
            .Take(PageSize),
            PagingInfo = new PagingInfo
            {
                CurrentPage = page,
                ItemsPerPage = PageSize,
                TotalItems = repository.First.Count()
            }
        };

        return View(viewModel);
    }

模型 > FirstListViewModel.cs

using System.Collections.Generic;
using MovinMyStuff.Domain.Entities;

namespace MovinMyStuff.WebUI.Models
{
    public class FirstListViewModel
    {
        public IEnumerable<First> Firsts { get; set; }
        public PagingInfo PagingInfo { get; set; }
    }
}

ViewModels > FirstAndSecond.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MovinMyStuff.WebUI.Models;
namespace MovinMyStuff.WebUI.ViewModels

namespace MovinMyStuff.WebUI.ViewModels
{
    public class MovesAndMovers
    {
        public MovesListViewModel movesList { get; set; }
        public MoversListViewModel moversList { get; set; }
        public MovesAndMovers()
        {
            movesList = new MovesListViewModel();
            moversList = new MoversListViewModel();
        }
    }
}

【问题讨论】:

  • 我处理这类事情的方式是使用 knockoutjs 和 ajaxing 来获取我想要的数据。但这可能是一个巨大的变化。
  • @KeithNicholas:关于将 KnockoutJS 与一些用例集成到 MVC3 中的推荐文章有哪些?我对这个库很感兴趣。
  • 我用过backbone.js。这类似于 knockout.js 吗?如果是这样,我将不得不做一些重新架构...大声笑。 ( :
  • 它类似于 HelloJonny.... 所以你可以使用它
  • @SergioTapia,好吧,knockoutjs 是由 MS 的一个人完成的,它预先装在 MVC4 中,这就是我正在使用的....不确定文章。淘汰论坛上的很多人都在做asp.net MVC和淘汰赛。大部分都是直截了当的,虽然我记得一开始我有很多毛茸茸的尝试把它全部连接起来,不得不改变我对做事的想法!前几天我确实看到有人发了这个knockoutmvc.com

标签: asp.net-mvc-3 mvvm viewmodel partial-views


【解决方案1】:

我想通了!这是一项艰巨的任务……我花了将近 10 个小时试图解决这个问题,所以请继续关注,因为我会给任何想要这个答案的人。现在我要做的就是阻止刷新将我送回页面顶部。哎呀!希望不会那么糟糕......(:

【讨论】:

    猜你喜欢
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    相关资源
    最近更新 更多