ASP.NET MVC2路由/文件夹结构

时间:2010-08-26 00:18:52

标签: c# asp.net-mvc-2 routing

在ASP.NET MVC2中,

如何更改路由/文件夹结构,以便我可以

  • 视图\文件夹\帐户\ ChangePass.aspx

而不是:

  • 视图\帐户\ ChangePass.aspx

我实际上并不想为帐户做这件事,但我想构建类似的东西,例如。

所以我可以有两个不同的观点,如:

  • 视图\分类\

  • 视图\管理员\分类\

这些会以完全不同的方式显示。

我想要做的就是能够创建自己的子文件夹来将视图推入,而不是每个不同控制器的单独文件夹................... ............................................

2 个答案:

答案 0 :(得分:3)

听起来像你需要研究使用区域......看看这篇文章了解更多信息:

Walkthrough: Organizing an ASP.NET MVC Application using Areas

摘录:

  

但是,某些应用程序可能拥有大量控制器,并且每个控制器都可以与多个视图关联。对于这些类型的应用程序,默认的ASP.NET MVC项目结构可能变得难以处理。

     

为了适应大型项目,ASP.NET MVC允许您将Web应用程序划分为更小的单元(称为区域)。区域提供了将大型MVC Web应用程序分成较小功能组的方法。区域实际上是应用程序内的MVC结构。应用程序可以包含多个MVC结构(区域)。

HTHS,
查尔斯

答案 1 :(得分:2)

使用asp.net MVC约定来查看位置;如果你想拥有不同的url路径,你需要查看创建自己的路由,而不是给你的默认单一路由。 (见this primer。)

以下是您可以在Global.asax中添加以获得所需结果的路线示例,但您必须将此路线适当地映射到控制器操作。真的,你需要决定模式以满足你的应用程序的需要...

        routes.MapRoute(
            "FolderRoute",                                             
            "{controller}/{folder}/{action}/{id}",                     
            new { controller = "Home", folder = "yourFolderDefault", action = "Index", id = "" }
        );