在MVC5中,我有多个'共享' 显示模板用于相同的数据类型,例如与{strong>多个控制器一起使用的DateTime
但是我希望其中一个模板是使用的模板,除非我明确说明了模板名称。
有没有办法可以做到以下几点:
DisplayFor(x => x.Time, "templatename")
OR
我知道将模板放在控制器的共享显示模板文件夹和搜索顺序中,但我指的是共享显示模板文件夹中相同数据类型的多个模板。
答案 0 :(得分:1)
如果您未指定位置(使用[UIHint]
的第二个参数的DisplayFor()
),则按以下顺序搜索模板
/Views/YourControllerName/DisplayTemplates
如果没有找到,那么
/Views/Shared/DisplayTemplates
如果找不到任何内容,则使用属性类型的默认(内置)模板。
在DateTime.cshtml
中找到/Views/Shared/DisplayTemplates
模板,除非您使用[UIHint]
覆盖,或在@Html.DisplayFor()
中指定位置,或者包含特定模板,否则将使用该模板对于控制器。