2010-12-06 3 views
2

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

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

Управление на самом деле неважно, что такое T. Он работает с любым T.

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

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

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

Любые мысли?

ответ

1

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

+0

Вы правы, я пробовал этот подход в студии 2008 года, но он не работает. Вам нужны ковариантные типы. Я попробую и мотивирую использовать новую структуру. Жаль, что он не работает с 2008 годом. Должно быть. – Jim 2010-12-13 11:27:19

Смежные вопросы