我在项目中使用区域,但我想将这些区域内的视图组织到子文件夹中。
例如,我有一个名为Members的区域,其中包含一个名为Settings的Controller和另一个名为MemberCategory的Controller。 MemberCategory实际上是Settings的子文件夹。
我希望当我访问我的网址的会员类别视图以解析为会员/设置/会员类别
目前它解析为Members / MemberCategory
是否可以将视图嵌套到子文件夹中,并将控制器更改为指向
return View("Members/Settings/MemberCategory");
或者这需要做路由吗?
任何例子都会受到赞赏。
答案 0 :(得分:4)
我已经使用Routes解决了这个问题,而没有将视图嵌套到子文件夹中。
在我的区域注册文件中,我在默认路由上添加了以下内容:
context.MapRoute(
"MemberCategory",
"Members/Settings/MemberCategory",
new { controller = "MemberCategory", action = "Index" }
);
context.MapRoute(
"MemberCategoryAction",
"Members/Settings/MemberCategory/{action}/{id}",
new { controller = "MemberCategory", action = "Index", id = UrlParameter.Optional }
);
不确定这是否是最优雅的方式,但它适用于我的情况。
答案 1 :(得分:1)
您还可以执行以下操作:
return this.View("../MailTemplates/ResetPassword");
进入您要使用的视图。代码编辑器将无法解决此问题,但它可以正常工作。
我认为这比以前更清洁:
return this.View("~/Areas/Cms/MailTemplates/ResetPassword");