我正在尝试创建通用用户控件。 所以我需要一个带有通用参数的用户控件。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IPager<T>>" %>
控件并不关心T是什么。它适用于任何T。
当我渲染控件时,我可以使用泛型参数实例化它。
<%= Html.RenderPartial<MyClass>("Pager", Model); %>
这是基本的想法 - 是否有任何方法可以使用户控件采用额外的泛型参数。如果我想建立这样的东西,我会从哪里开始?
有什么想法吗?
答案 0 :(得分:1)
如果您使用的是.NET 4.0,则可以在IPager<object>
声明中使用<%@Control %>
。然后,协变泛型支持意味着您可以在IPager<MyClass>
中将RenderPartial
作为模型传递给它,它仍然可以正常工作。