控制器ASP.NET MVC中的子文件夹

yoo*_*uri 3 c# asp.net-mvc asp.net-mvc-routing

在我的Controllers文件夹中,我想要一个名为Admin的子文件夹.

在此输入图像描述

当我去http:// localhost:port/Admin/Login /它说无法找到页面.

RouteConfig.cs

using System.Web.Mvc;
using System.Web.Routing;

namespace ICT4Events
{
    public class RouteConfig
    {
        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 }
            );
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

use*_*704 5

您可以使用下一个路线来处理您的问题:

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

请勿忘记将controller = "Home"控制器的默认值更改为要在用户键入时重定向的控制器http://localhost:port/Admin/.

因此,当您转到时, http://localhost:port/Admin/Login/您将在Admin文件夹中使用Login控制器和Index操作.

重要事项 同样将此路由放在默认路由之前,因为如果将此代码放在"默认"路由之后,ASP.NET将http://localhost:port/Admin/Login/使用Admin控制器和Login操作读取您的URL .