[英]Ajax WebGrid Paging MVC3
我正在使用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; }
}
这项工作适用于首页,但其他页面则没有任何反应。
几个小时后,我找不到帮助我的东西。我注意到页面链接的html代码。 页面链接
<a href="#" onclick="$('#grid2').load('/ABC/GetGrid?page=2&__=635163360142144025 #grid2');">2</a>
所以我终于知道它是如何工作的。我像这样向我的控制器添加一个ActioResult
:
[HttpGet]
public ActionResult GetGrid(int page)
{
return PartialView("Result",mo);
}
和工作。我希望这对某些人有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.