通用视图模型控制 (MVC)
Posted
技术标签:
【中文标题】通用视图模型控制 (MVC)【英文标题】:generic viewmodel control (MVC) 【发布时间】:2010-12-06 06:59:04 【问题描述】:我正在尝试创建一个通用的用户控件。 所以我需要一个带有通用参数的用户控件。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IPager<T>>" %>
控件并不真正关心 T 是什么。它适用于任何 T。
当我渲染控件时,我可以使用泛型参数对其进行实例化。
<%= html.RenderPartial<MyClass>("Pager", Model); %>
这是基本思想——有没有办法制作一个需要额外通用参数的用户控件。如果我想构建这样的东西,我会从哪里开始?
有什么想法吗?
【问题讨论】:
【参考方案1】:如果您使用的是 .NET 4.0,则可以在 <%@Control %>
声明中使用 IPager<object>
。然后,协变泛型支持意味着您可以将 IPager<MyClass>
作为模型传递给 RenderPartial
,它仍然可以正常工作。
【讨论】:
你是对的,我在工作室 2008 中尝试过这种方法,但它不起作用。您需要协变类型。我将尝试并激励使用新框架。可惜它不适用于 2008。它应该有。以上是关于通用视图模型控制 (MVC)的主要内容,如果未能解决你的问题,请参考以下文章