Ajax WebGrid分页MVC3

时间:2013-10-02 15:17:17

标签: ajax asp.net-mvc-3 paging webgrid

我正在使用WebGrid,我需要在Ajax页面之间切换。

索引代码

<script src="../../Scripts/jquery.unobtrusive-ajax.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
@using (Ajax.BeginForm("GetGrid", new AjaxOptions() { UpdateTargetId = "Res" }))
{
    <input type="text" />
    <input type="submit" value="start" />
    <div id="Res">
    </div> 
}

结果部分视图

@model IEnumerable<MvcApplication1.Controllers.Model>

<div id="grid2">
@{
    var grid = new WebGrid(source:Model,rowsPerPage:6,ajaxUpdateContainerId: "grid2");

    @grid.GetHtml(htmlAttributes: new { id = "grid2" },

          columns: grid.Columns(
                    grid.Column("Someting")
    ));
}
</div>

控制器代码

 public class ABCController : Controller
{
    //
    // GET: /ABC/

    public ActionResult Index()
    {
        return View();
    }
    public static  List<Model> mo = new List<Model>();
    [HttpPost]
    public ActionResult GetGrid()
    {
        for (int i = 0; i < 1000; i++)
        {
            mo.Add(new Model() { Someting = i.ToString() });
        }
        return PartialView("Result", mo);
    }

}

    public class Model
    {
        public string Someting { get; set; }
    }

这是第一页的工作,但其他页面没有任何反应。

1 个答案:

答案 0 :(得分:1)

几个小时后我找不到一些能帮到我的东西。我注意到我的页面链接的html代码。 页面链接

<a href="#" onclick="$('#grid2').load('/ABC/GetGrid?page=2&amp;__=635163360142144025 #grid2');">2</a>

所以我终于得到了它的工作原理。我向我的控制器添加ActioResult,如下所示:

    [HttpGet]
    public ActionResult GetGrid(int page)
    {
        return PartialView("Result",mo);
    }

and working.i希望这对某些人有用