.net MVC区域和子文件夹

时间:2012-09-07 11:18:01

标签: asp.net-mvc

我在项目中使用区域,但我想将这些区域内的视图组织到子文件夹中。

例如,我有一个名为Members的区域,其中包含一个名为Settings的Controller和另一个名为MemberCategory的Controller。 MemberCategory实际上是Settings的子文件夹。

我希望当我访问我的网址的会员类别视图以解析为会员/设置/会员类别

目前它解析为Members / MemberCategory

是否可以将视图嵌套到子文件夹中,并将控制器更改为指向

return View("Members/Settings/MemberCategory");

或者这需要做路由吗?

任何例子都会受到赞赏。

2 个答案:

答案 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");