0

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

有分页,但链接只是一个'#'。

4

1 回答 1

1

You have specified an ajaxUpdateContainerId. That means your paging is AJAX based - hence the # in the href. IF you want URLs, you need to remove the ajaxUpdateContainerId.

于 2013-08-15T05:31:54.800 回答