как реализовать частичное представление с выводом универсального типа - PullRequest
4 голосов
/ 01 декабря 2010

Я работаю через этот образец и столкнулся с проблемой.Чтобы реализовать нумерацию страниц, образец расширяет список и добавляет к нему нумерацию страниц.Этот список затем используется в качестве модели.

На мой взгляд, я хочу добавить элемент управления нумерацией страниц.В примере они просто добавляют его на страницу, но я хочу сделать его пользовательским элементом управления, потому что я планирую реализовать разбиение на страницы на нескольких страницах.Конечно, это должно быть строго типизированное представление, но, поскольку я не могу использовать подстановочные знаки в C #, я не могу реализовать его следующим образом:

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

Поскольку я планирую использовать только члены, объявленные в PaginatedListа не в List мне не нужен тип.

В методе C # мы могли бы решить эту проблему с помощью вывода типа, но как это сделать в частичном представлении?

1 Ответ

3 голосов
/ 01 декабря 2010

Определите интерфейс, содержащий свойства пагинации, которые вы хотите использовать при частичном просмотре.Пусть ваш 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>" %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...