我有一个带有区域的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")]
编辑器模板使用默认视图。 (基本上显示了模型中所有内容的编辑器)
我的问题是如何使用上面提到的属性路由指向编辑器模板?
答案 0 :(得分:0)
您可以使用[UIHint]
为要使用特殊编辑器的ViewModel中的属性指定编辑器模板的名称。
public class ViewModel {
[UIHint("Address")]
public string Address {get; set;}
}
答案 1 :(得分:0)
好吧,我运气好了。
基本上我在控制器顶部添加了[RouteArea(" Admin")]标签,正常地将路由属性添加到操作中,并从Html.EditorFor和左MVC中删除了显式路径决定在哪里寻找模板。
像魅力一样。