ASP.NET MVC:可能有多个显示模板的类型?
问题描述:
我有两个视图显示大致相同的数据,但一个是客户端,另一个是按项目。通常情况下,这会很好,因为同一显示模板会在两个视图中重复使用。但是,当我们按客户列出项目时,我需要显示这些项目。但是,他们已经定义了显示模板。有没有办法让我为单一类型设置两个显示模板?ASP.NET MVC:可能有多个显示模板的类型?
编辑
好吧,我忘了一个重要的细节,使得这更复杂。虽然存在保存每个视图的项目的单独模型(视图模型),但项目本身是混合类型(公共基类)。显示模板适用于可以在列表中的每种类型的项目,所以我不能在模型上使用属性。
我想我可以让单个子模型包装或替换类,但这比我更喜欢重复和工作。
答
每个视图都有它自己的强类型视图吗?如果是这样创建两个不同的模板,那么在每个模型中使用[UIHint]注释引用它们。
例子:
public class ClientModel
{
[UIHint("ClientDisplay")]
public SharedDataModel sharedData { get; set;}
//Other fields below
}
然后做项目模型同样的事情。如果您目前在两者之间使用相同的模型,则可以将它们包装在单独的新模型中并执行相同的操作。
从你问的问题我相信这是你想要做的,我有一些麻烦,你的问题。
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
也是一个很好的代码说明,从这里开始吧http://*.com/questions/1532232/asp-net-mvc-form-value-display-by-role – 2010-11-02 09:42:48