MVC编辑器模板路径问题与属性路由

时间:2016-07-07 07:42:33

标签: asp.net-mvc

我有一个带有区域的MVC应用程序,在一个区域我正在使用名为Address的编辑器模板,该模板位于“Areas / Admin / Views / Shared / EditorTemplates /”文件夹中。

使用编辑器模板返回视图的控制器操作是用户控制器(位于管理区域中)中的“EditUser(long userId)”

我在视图中有编辑器模板:

@Html.EditorFor(x => x.Address, "../Views/Shared/EditorTemplates/Address")

这也无需明确定义路径。

通过“..Admin / User / EditUser?userId = 1”访问此页面可以正常工作。但是当我在EditUser上使用属性路由时:

[Route("admin/user/{userId}/edit")]

编辑器模板使用默认视图。 (基本上显示了模型中所有内容的编辑器)

我的问题是如何使用上面提到的属性路由指向编辑器模板?

2 个答案:

答案 0 :(得分:0)

您可以使用[UIHint]为要使用特殊编辑器的ViewModel中的属性指定编辑器模板的名称。

public class ViewModel {
    [UIHint("Address")]
    public string Address {get; set;}
}

答案 1 :(得分:0)

好吧,我运气好了。

基本上我在控制器顶部添加了[RouteArea(" Admin")]标签,正常地将路由属性添加到操作中,并从Html.EditorFor和左MVC中删除了显式路径决定在哪里寻找模板。

像魅力一样。