2010-12-06 89 views
2

我想創建一個通用的用戶控件。 所以我需要一個帶有通用參數的用戶控件。通用視圖模型控件(MVC)

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

該控件並不真正關心T是什麼。它適用於任何T.當我渲染控件時,我可以使用泛型參數實例化它。

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

這就是基本思想 - 有沒有什麼辦法讓用戶控件需要額外的通用參數。如果我想建立這樣的事情,我會從哪裏開始?

有什麼想法?

回答

1

如果您使用的是.NET 4.0,則可以在<%@Control %>聲明中使用IPager<object>。然後,協變泛型支持意味着您可以在RenderPartial中將它作爲模型傳遞給IPager<MyClass>,它仍然可以正常工作。

+0

你是對的,我在2008演播室嘗試了這種方法,但它不起作用。你需要協變類型。我會嘗試並激勵使用新的框架。可惜它不適用於2008年。它應該有。 – Jim 2010-12-13 11:27:19