MVC助手通过查找容器来插入html

时间:2013-12-02 04:37:44

标签: c# asp.net-mvc html-helper

我有2个自定义html助手

@html.Grid(blah...).blah...
@html.Pagination()

我面临的问题是分页将取决于网格数据,但可以在调用之前或之后。我需要将它们分开以允许将页面内容放置在页面的底部或顶部,而不是触摸网格。

所以这是一个示例页面:

@html.Pagination()
@html.Grid(blah...).blah...
@html.Pagination()

我已经发现,如果分页在网格之后,我可以在Grid和Pagination之间共享数据,但之前仍然是个问题。我曾想过制作一个空容器并在Grid中修改它的html输出,但我似乎无法弄明白。我希望这样,以便我能做到这一点:

@html.Pagination()
@html.Grid().Columns(...).AjaxPaging();
@html.Pagination()

如果不可能或不容易完成,我可以决定将“AjaxPaging()”和模型放在Pagination和Grid上,但我希望Pagination是虚拟容器并让网格完成所有操作工作。

此外,Javascript不是一个选项,因为我也想要HtmlPaging(没有启用js)为那些在网站上禁用js的人。我可以轻松地使用Ajax或JS。

感谢。

1 个答案:

答案 0 :(得分:0)

模型示例:

class GridModel {
  public List<GridColumn> Columns {get; set;}
  /*  rest of model, including pagination properties  */
}

您的控制器将完成构建模型对象的工作。

查看代码:

/* `model` is of type `GridModel` */

@html.Pagination(model)
@html.Grid(model)
@html.Pagination(model)