2010-11-02 51 views
3

我有两个视图显示大致相同的数据,但一个是客户端,另一个是按项目。通常情况下,这会很好,因为同一显示模板会在两个视图中重复使用。但是,当我们按客户列出项目时,我需要显示这些项目。但是,他们已经定义了显示模板。有没有办法让我为单一类型设置两个显示模板?ASP.NET MVC:可能有多个显示模板的类型?

编辑

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

我想我可以让单个子模型包装或替换类,但这比我更喜欢重复和工作。

回答

6

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

例子:

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

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

从你问的问题我相信这是你想要做的,我有一些麻烦,你的问题。

+0

Jim - 看到这个简单的定义http://zh.efreedom.com/Question/1-3770721/DataType-Vs-UiHint和http://dotnetaddict.dotnetdevelopersjournal.com/mvc2_templated_helpers.htm ...它也不知道UiHint覆盖,看起来非常有用。 ceasterday,+1 – 2010-11-02 09:38:01

+0

也是一个很好的代码说明,从这里开始吧http://stackoverflow.com/questions/1532232/asp-net-mvc-form-value-display-by-role – 2010-11-02 09:42:48

相关问题