ASP.NET MVC Controller SubFolder

use*_*331 6 c# asp.net asp.net-mvc

我正在使用ASP.NET MVC并尝试创建一个控制器子文件夹.我查看了这个网站上的其他帖子并尝试了我在网上找到的内容,但它仍然遇到了这个问题:

HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly.
Run Code Online (Sandbox Code Playgroud)

下面的屏幕截图是我在控制器文件夹中创建的子文件夹.

在此输入图像描述

这是我的View文件夹的屏幕截图.

在此输入图像描述

这是我在RouteConfig.cs文件中尝试的内容

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );

    routes.MapRoute(
        name: "AdminSubForder",
        url: "admin/{controller}/{action}/{id}",
        defaults: new { controller = "HomeAdmin", action = "Index", id = UrlParameter.Optional }
    );
}
Run Code Online (Sandbox Code Playgroud)

但我的子文件夹仍然无法正常工作.我在这做错了什么?

K D*_*K D 6

尝试以下事情...

首先按以下方式定义您的路由......路由应该从最具体最不具体的模式定义

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                    name: "AdminSubForder",
                    url: "admin/{controller}/{action}/{id}",
                    defaults: new { controller = "HomeAdmin", action = "Index", id = UrlParameter.Optional }
                );
            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );


        }
Run Code Online (Sandbox Code Playgroud)

如果它仍然不起作用,请尝试添加控制器的程序集名称,如下面的帖子所述..控制器子文件夹

此外,请告诉我们您正在输入哪个 URL 以访问该页面。


小智 5

根据 MVC 架构,视图从名为 Views 文件夹内的控制器名称的子文件夹呈现。我不认为在 Views 中嵌套文件夹对你有用。相反,如果您想组织您的文件夹,您可以选择“区域”。