我正在使用mvc 3 razor处理webgrid,并且分页根本不起作用。有分页,但链接只是一个'#'。我在另一个项目中做了另一个,这是完全相同的代码,它完美地工作!它们之间的唯一区别是项目中不起作用的模型层是一个独立的项目,与同一解决方案中的另一个项目共享。这里是代码:
控制器:
public ActionResult Index(int? page, string sortDir, string sort = "")
{
if (AuthRepository.hasUsuarioAutenticado)
{
List<CLIMA> list = new List<CLIMA>();
list = GetClimas(page, sortDir, sort);
return View("Index", list);
}
return RedirectToAction("Index", "Home");
}
public List<CLIMA> GetClimas(int? page, string sortDir, string sort)
{
var query = _rep.GetAll().OrderByDescending(p=>p.CLIMA_ID);
return query.ToList();
}
查看:
WebGrid grid = new WebGrid(source: Model, canSort: false, canPage: true, ajaxUpdateContainerId: "grade", rowsPerPage: 20, ajaxUpdateCallback: "grade");
@grid.GetHtml(
tableStyle: "grade",
headerStyle: "header",
alternatingRowStyle: "alt",
columns: grid.Columns(
grid.Column("nome", header: "Cidade", format: @<text>@item.CIDADE_NOME</text>, canSort: false),
grid.Column("descricao", header: "Data", format: @<text> @item.OBSERVATION_TIME</text>, canSort: false),
grid.Column(header: "Ações", format: @<text> @Html.ActionLink("Editar", "Editar", new { id = item.CLIMA_ID })
@Html.ActionLink("Deletar", "Delete", new { id = item.CLIMA_ID }, new { @onclick = "return ConfirmaDelete();" })
@Html.ActionLink("Config. Clima", "Editar", "ClimaConfig", new { id = item.CLIMA_CONFIG }, null)
</text>)
有分页,但链接只是一个'#'。
答案 0 :(得分:1)
您已指定ajaxUpdateContainerId
。这意味着您的分页是基于AJAX的 - 因此href中的#。如果您需要网址,则需要删除ajaxUpdateContainerId
。