jquery与ASP.NET MVC动态分页生成

时间:2015-08-09 19:27:06

标签: jquery asp.net-mvc

我正在尝试根据工作机会的数量生成足够的分页链接。 (我正在建立与求职相关的事情。)

我试图在点击事件后调用Send函数,但我有另一个jQuery定位该列表。

<li class="active page-number"><a href="#" onclick="Send(2)">2</a></li>

<script>
    ///Custom scripts
    ///
    function Send(page) {
       $.post("/JobOffer/JobList/", { page: page });
    }

    $(document).ready(function () {
        $(".pagination>li").click(function () {
            $(".pagination>li.active").removeClass("active");
            $(this).addClass("active");
        });
    });
</script>

所以当我点击&#34; .pagination&gt; li&#34;我转到使用[HttpPost]标记的JobOffer控制器中的Action JobList。

  [HttpPost]
  public ActionResult JobList(int? page)
  {
        var pageNumber = page ?? 1;
        var pageSize = 3;

        /*Some magic*/

        viewModel.OfferCount = GetJobOfferCount(Enums.JobOfferType.Employer);
        viewModel.PageSize = pageSize;

        return View(viewModel);
  }

然后我收到page参数为null。

如何将页面参数发送到我的操作方法? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试使用带有@Url.Action()Action名称的重载的Controller帮助程序。并修改您的HTML以利用data-attribute。只是您问题的简化解决方案。试试这个:

<li class="active page-number"><a href="#" data-page="2">2</a></li>

$(document).ready(function () {

    $("a").click(function () {
        var page = $(this).data("page");            
        $.post("@Url.Action("JobList","JobOffer")", { page: page });

        $(this).parent().toggleClass("active");
    });


});