通用视图模型控件(MVC)

时间:2010-12-06 06:59:04

标签: model-view-controller view controls generics

我正在尝试创建通用用户控件。 所以我需要一个带有通用参数的用户控件。

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

控件并不关心T是什么。它适用于任何T。

当我渲染控件时,我可以使用泛型参数实例化它。

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

这是基本的想法 - 是否有任何方法可以使用户控件采用额外的泛型参数。如果我想建立这样的东西,我会从哪里开始?

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您使用的是.NET 4.0,则可以在IPager<object>声明中使用<%@Control %>。然后,协变泛型支持意味着您可以在IPager<MyClass>中将RenderPartial作为模型传递给它,它仍然可以正常工作。