asp.net路由找不到方法

时间:2014-10-27 17:14:46

标签: asp.net-mvc asp.net-mvc-routing

我的应用程序中有一个名为admin的文件夹,所以我的文件夹结构如下所示

-Models
|
-Views
|
-Controller
  |
  |-HomeController.cs
  |
  |-Admin
     |
     |-HomeController.cs <-- in this controller, i have methods Add,Delete,View

我需要创建一个路由,所以如果我输入网址http://localhost:2336/admin/add,它将执行家庭控制器的添加方法,但我收到404错误。

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

            routes.MapRoute(
            name: "Admin",
            url: "Admin/{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            namespaces: new[] { "fms.Controllers.Admin" }
            );

            routes.MapRoute(
                "Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
            );

        }

1 个答案:

答案 0 :(得分:1)

您的管理路线指定了这样的路线:

Admin/{controller}/{action}/{id}

这意味着您需要在URL中拥有控制器名称和操作。例如,这应该有效:

http://localhost:2336/admin/home/add

如果您将网址路径更改为此网址,则可以使用:

Admin/{action}/{id}

然而,这确实意味着将管理员控制器放在其自己的文件夹中有点没有意义。如果我是你,我会查找如何创建一个新的MVC区域。