ASP.NET MVC:可以为一个类型提供多个显示模板吗?

Jim*_*Jim 3 asp.net-mvc asp.net-mvc-2

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

编辑

好吧,我忘记了一个让这更复杂的重要细节.虽然有各个模型(视图模型)保存每个视图的项目,但项目本身是混合类型(公共基类).显示模板适用于列表中可能包含的每种类型的项目,因此我无法在模型上使用属性.

我想我可以制作单独的子模型来包装或替换类,但这比我更喜欢的重复和工作更多.

cea*_*day 6

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

例:

public class ClientModel
{
     [UIHint("ClientDisplay")]
     public SharedDataModel sharedData { get; set;}
     //Other fields below
}
Run Code Online (Sandbox Code Playgroud)

然后为Project模型做同样的事情.如果您当前在两者之间使用相同的模型,则可以将它们包装在单独的新模型中并执行相同的操作.

根据你的要求,我相信这是你想要做的,我在你的问题上遇到了一些麻烦.