MVC 3中的简单自定义寻呼机

时间:2012-03-12 08:20:18

标签: asp.net-mvc-3 razor asp.net-mvc-partialview pager

我正在寻找按照以下简单要求实现寻呼机的最佳方法。

我想要一个像这样的页面

 <Pager 1 2 3 4 ...>

 <Partial View>

我的动作控制器看起来像这样...

    public PartialViewResult DisplayRecordDetails(int recordNumber)
    {
        MyRecord mr = GetRecord(recordNumber);
        return PartialView(mr);
    }

当我点击“1”(页面索引= 1)时,我将1作为参数传递给DisplayRecordDetails操作方法,并加载带有记录1的局部视图。

当我点击“2”(页面索引= 2)时,我将2作为参数传递给DisplayRecordDetails操作方法并加载带有记录2的局部视图,依此类推......

我将获得总项目数信息和当前页面索引信息。现在,我如何使用此信息动态生成寻呼机?

我尝试过搜索寻呼机库/帮助器,但所有这些都是用于网格的。我怎样才能将它们用于我的情况?我没有网格。我只是有一个局部视图,我需要根据页码动态加载。

1 个答案:

答案 0 :(得分:1)

您可以设计一个包含所有ID号的视图模型:

public class MyViewModel
{
    // the currently selected id
    public int Id { get; set; }

    // a list of available ids
    public int[] Ids { get; set; }
}

然后有一个控制器操作,它将查询您的数据库或其他任何内容并获取所有可用ID的列表:

public ActionResult Index(int? id)
{
    var model = new MyViewModel
    {
        Id = id ?? 0,
        Ids = new[] { 563, 845, 845 } // those will come from your datasource
    };
    return View(model);
}

并在相应的视图中,您可以遍历这些ID并生成链接:

@model MyViewModel
<div>
    @Html.Action("DisplayRecordDetails", new { recordNumber = Model.Id })
</div>
@for (var i = 0; i < Model.Ids.Length; i++) 
{
    <span>@Html.ActionLink((i + 1).ToString(), "Index", new { id = i })</span>
}