我正在尝试为IEnumerable集合实现自己的分页。所以,我有一个名为PagedList的类。我已经完成了类本身,我只需要编写一个HtmlHelper扩展方法来渲染实际的页面。这将是最简单的方法(至少我能想到):
public static MvcHtmlString Paginate<TModel>(this HtmlHelper<TModel>,string url){
//do the stuff here
return new MvcHtmlString("Hi");
}
但是,是否可以仅在强类型为PagedList的视图中使此方法可用?
答案 0 :(得分:3)
虽然@Ehsan Sajjad的答案是正确的,但我找到了一种更简洁的方法来实现这一目标:
public static MvcHtmlString Paginate<T>(this HtmlHelper<PagedList<T>> helper,string url){
.......
}
我已经尝试过它确实有效。但是目前我可能还没有想到其他一些含义,所以欢迎任何评论或更正。
答案 1 :(得分:2)
您可以在方法上添加constraint,以便只能在特定类型上调用它,例如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");
}