1

我正在使用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; }
    }

这适用于第一页,但其他页面没有任何反应。

4

1 回答 1

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);
    }

并且工作了。我希望这对某些人有所帮助

于 2013-10-02T15:17:39.247 回答