универсальное управление моделью представления (MVC) - PullRequest
2 голосов
/ 06 декабря 2010

Я пытаюсь создать общий пользовательский элемент управления. Поэтому мне нужен пользовательский элемент управления с универсальным параметром.

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

Управляющему на самом деле все равно, что такое T. Работает с любым T.

Когда я отрисовываю элемент управления, я могу создать его экземпляр с помощью общего аргумента.

<%= Html.RenderPartial<MyClass>("Pager", Model); %>

Это основная идея - есть ли способ создать пользовательский элемент управления, который принимает дополнительный общий аргумент. Если бы я хотел построить такую ​​вещь, с чего бы мне начать?

Есть мысли?

1 Ответ

1 голос
/ 06 декабря 2010

Если вы используете .NET 4.0, вы можете использовать IPager<object> в объявлении <%@Control %>. Затем поддержка ковариантных обобщений означает, что вы можете передать ей IPager<MyClass> как модель в RenderPartial, и она все равно будет отлично работать.

...