3

我正在尝试为 IEnumerable 集合实现我自己的分页。所以,我有一个名为 PagedList 的类。我已经完成了类本身,我只需要编写一个 HtmlHelper 扩展方法来呈现实际页面。这将是最简单的方法(至少我能想到):

public static MvcHtmlString Paginate<TModel>(this HtmlHelper<TModel>,string url){
      //do the stuff here
      return new MvcHtmlString("Hi");
}

但是,是否可以仅在那些对 PagedList 强类型化的视图中使此方法可用?

4

2 回答 2

3

虽然@Ehsan Sajjad 的回答是正确的,但我找到了一种更简洁的方法来实现这一点:

public static MvcHtmlString Paginate<T>(this HtmlHelper<PagedList<T>> helper,string url){
    .......
}

我已经尝试过了,它确实有效。但可能还有一些我目前无法想到的其他含义,因此欢迎任何评论或更正。

于 2015-03-03T11:56:45.393 回答
2

您可以对方法施加约束,使其只能在特定类型上调用,例如 Example IEnumerable<PagedList>PagedList<TModel>或者PagedList如果您愿意,它取决于您想要的模型类型,还取决于您的PagedList类的实现:

public static MvcHtmlString Paginate<TModel>(this HtmlHelper<TModel> helper,string url) where TModel : IEnmerable<PagedList> {
  //do the stuff here
  return new MvcHtmlString("Hi");
}
于 2015-03-03T11:46:23.753 回答