【问题标题】:ASP.NET MVC2 Routing / Folder structureASP.NET MVC2 路由/文件夹结构
【发布时间】:2011-04-04 00:40:25
【问题描述】:

在 ASP.NET MVC2 中,

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

  • Views\FOLDER\Account\ChangePass.aspx

而不是:

  • Views\Account\ChangePass.aspx

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

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

  • 视图\类别\

  • 视图\管理员\类别\

这些将完全不同。

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

【问题讨论】:

  • 您想更改 MVC 查找包含您的视图的 aspx 文件的方式(ViewEngine 功能)还是用于访问您的资源的 URL 的形状(路由功能)?跨度>

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


【解决方案1】:

在我看来,您需要研究使用区域...查看这篇文章了解更多信息:

Walkthrough: Organizing an ASP.NET MVC Application using Areas

摘录:

但是,一些应用程序可以有大量的控制器,每个控制器可以关联多个视图。对于这些类型的应用程序,默认的 ASP.NET MVC 项目结构可能会变得笨拙。

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

HTH,
查尔斯

【讨论】:

  • 看起来很不错,但是我照做了,解决方案不起作用,不幸的是我认为代码示例是错误的,从 cmets 判断...
  • 嗯,今晚(或周末)我会在家里看看我的解决方案,看看我是否可以改进该演练。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    相关资源
    最近更新 更多