ASP.net MVC - 指定显示模板的完整路径

时间:2012-02-02 17:38:40

标签: c# asp.net-mvc razor display-templates

是否可以指定显示或编辑模板的完整路径?

例如,我有以下模型:

public class ParentModel
{
    public class ChildModel { get; set; }
}

我有一个ParentController和一个ChildController我希望将Child显示模板视图放在Views / Child / DisplayTemplates / ChildModel.cshtml中,将ParentModel.cshtml视图放在Views / Parent中/DisplayTemplates/ParentModel.cshtml。

现在它无法找到子显示模板,因为它正在查看Views / Shared和Views / Parent。

是否可以指定显示模板的完整路径或编写可指定要查看的文件夹的HtmlHelper?

1 个答案:

答案 0 :(得分:3)

我找到了一种只有一个小缺点的方法:

@Html.DisplayFor(model => model.Child, "Child/ChildModel")

我创建了以下文件夹:

Views\Shared\DisplayTemplates\Child并将ChildModel.cshtml放在该文件夹中。这样做的缺点是它不再使用模型名称来确定模板名称,我想它也可能忽略了UIHint,但它确实允许我更好地组织我的共享显示模板。