2012-06-26 83 views
0

如何在我的主页上呈现两个分页列表?MVC3 /部分视图/多分页列表

我愿意不惜一切代价 - 如果这意味着我的定制代码,以适应解决方案或定制现有的解决方案,以适应我的代码。

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

看看我的代码: 查看 ..Home> Index.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(); 
     } 
    } 
} 
+0

我处理这种东西的方式是用knockoutjs和ajaxing来获取我想要的数据,但这可能会有一个巨大的变化。 –

+0

@KeithNicholas :关于将KnockoutJS整合到MVC3中的一些推荐文章和一些用例?我对这个库感兴趣 –

+0

我使用了backbone.js。是否类似于knockout.js?如果是这样,我将不得不做一些重构。 (: –

回答

0

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