3

我試圖爲IEnumerable集合實現我自己的分頁。所以,我有一個名爲PagedList的類。我完成了這個類本身,我只需要編寫一個HtmlHelper擴展方法來渲染實際的頁面。這將是最簡單的方法去(至少我能想到的):是否有可能使HtmlHelper擴展方法僅適用於具有特定類型的視圖

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

但是,是有可能使只有在被強類型到PagedList這些觀點提供這種方法嗎?

+0

從我在Google上可以找到的這是可能的,是的,但我還沒有看到任何確認的代碼片段。 – 2015-03-03 11:37:40

回答

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"); 
} 
3

雖然@Ehsan薩賈德的答案是正確的,我已經找到了一個更合適的方法來實現:

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

我試着它真的有用。但是可能還有其他一些我現在無法想到的含義,因此歡迎任何意見或更正。

+0

不錯,簡潔,很好的解決方案 – 2015-03-03 12:45:49

+0

不錯的做法:) – Tushar 2015-03-04 06:43:05

相關問題