Можно ли сделать метод расширения HtmlHelper доступным только для тех представлений определенного типа
Я пытаюсь реализовать свою собственную подкачку для IEnumerable коллекций. Итак, у меня есть класс с именем PagedList. Я закончил с самим классом, мне просто нужно написать метод расширения HtmlHelper, который будет отображать реальные страницы. Это был бы самый простой способ (по крайней мере, я могу думать):
public static MvcHtmlString Paginate<TModel>(this HtmlHelper<TModel>,string url){
//do the stuff here
return new MvcHtmlString("Hi");
}
Но возможно ли сделать этот метод доступным ТОЛЬКО в тех представлениях, которые строго типизированы в PagedList?
2 ответа
Хотя ответ @Ehsan Sajjad верен, я нашел более удобный способ сделать это:
public static MvcHtmlString Paginate<T>(this HtmlHelper<PagedList<T>> helper,string url){
.......
}
Я пытался, и это действительно работает. Но могут быть некоторые другие последствия, о которых я не могу думать в данный момент, поэтому любые комментарии или исправления приветствуются.
Вы можете наложить ограничение на метод, чтобы его можно было вызывать только для определенных типов, например 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");
}