2010-12-01 13 views
4

私はthisサンプルを使って問題を見つけました。ページネーションを実装するために、サンプルはリストを拡張し、ページングを追加します。このリストはモデルとして使用されます。ジェネリック型の推論でパーシャルビューを実装する方法

私の見解では、ページネーションコントロールを追加したいと考えています。サンプルでは単にページに追加するだけですが、複数のページでページ設定を実装する予定であるため、ユーザーコントロールにしたいと考えています。オフコースこれは強く型付けされたビューである必要がありますが、私はC#でワイルドカードを使用することはできませんので、私はこのようにそれを実装することはできません:私はメンバーのみがListPaginatedListで宣言されていない使用することを計画しているので

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PaginatedList<?>>" %> 

私はそのタイプは必要ありません。

C#の方法では、型推論でこの問題を解決できましたが、部分的にはどのように見えますか?

答えて

3

パーシャルビューで使用するページ設定プロパティを含むインターフェイスを定義します。 PaginatedList<T>クラスでこのインターフェイスを実装してください。あなたの部分的なビューは、インターフェイスに入力する必要があります。

public interface IPaginated 
{ 
    int PageIndex { get; } 
    int PageSize { get; } 
    int TotalCount { get; } 
    int TotalPages { get; } 
} 

public class PaginatedList<T> : List<T>, IPaginated 
{ 
    ... should not need to change ... 
} 

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IPaginated>" %> 
+0

ありがとう、私はこれを知っていたはずです。 – Jan

関連する問題