Asp.net mvc ASP.NET MVC:一个类型可能有多个显示模板?

Asp.net mvc ASP.NET MVC:一个类型可能有多个显示模板?,asp.net-mvc,asp.net-mvc-2,Asp.net Mvc,Asp.net Mvc 2,我有两个视图显示大致相同的数据,但一个是按客户机显示的,另一个是按项目显示的。通常这会很好,因为相同的显示模板可以在两个视图中重复使用。但是,当按客户机和项目列出这些项目时,我需要这些项目的显示有所不同。但是,它们已经定义了显示模板。有什么方法可以让我为一种类型使用两个显示模板吗 编辑 好吧,我忘了一个重要的细节,这让事情变得更复杂。虽然有单独的模型(视图模型)为每个视图保存项目,但项目本身是混合类型(公共基类)。显示模板适用于列表中的每种类型的项,因此我不能在模型上使用属性 我想我可以创建单独

我有两个视图显示大致相同的数据,但一个是按客户机显示的,另一个是按项目显示的。通常这会很好,因为相同的显示模板可以在两个视图中重复使用。但是,当按客户机和项目列出这些项目时,我需要这些项目的显示有所不同。但是,它们已经定义了显示模板。有什么方法可以让我为一种类型使用两个显示模板吗

编辑

好吧,我忘了一个重要的细节,这让事情变得更复杂。虽然有单独的模型(视图模型)为每个视图保存项目,但项目本身是混合类型(公共基类)。显示模板适用于列表中的每种类型的项,因此我不能在模型上使用属性


我想我可以创建单独的子模型来包装或替换类,但这比我希望的要多,重复和工作也要多。

每个视图都有自己的强类型视图吗?如果是这样,请创建两个不同的模板,然后在每个模型中使用[UIHint]注释引用它们

例如:

public class ClientModel
{
     [UIHint("ClientDisplay")]
     public SharedDataModel sharedData { get; set;}
     //Other fields below
}
然后对项目模型执行同样的操作。如果您当前在这两个模型之间使用相同的模型,您可以将它们包装在不同的新模型中,并执行相同的操作


根据你的提问,我相信这就是你想要做的,我在回答你的问题时遇到了一点困难。

Jim-请看这个简单的定义,然后。。。它也不知道UiHint覆盖,看起来非常有用。不断地,+1同样,从现在开始,这是一个很好的代码描述