0

我正在尝试在 MVC 项目中路由链接。

我尝试了两种方法:

   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 }
        );

        //method1
       // routes.MapPageRoute("SchoolPage", "School", "~/home", false);

        //method2
        routes.MapRoute(name: "SchoolPage",url: "School", defaults: new { controller = "Home", action = "Index" });
    }

对于这两种方法,我都会收到错误:

HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。

4

1 回答 1

1

您需要先指定自定义路由。默认路由没有约束,因此它会匹配任何 URL。当您向http://example.org/School发出请求时,ASP.NET MVC 将使用默认路由查找名为 SchoolController 的控制器。您必须首先将其放置在默认路由之前,以确保它与 SchoolPage 路由匹配。

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

    routes.MapRoute(name: "SchoolPage",url: "School", defaults: new { controller =     "Home", action = "Index" });

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

}
于 2014-03-12T08:18:33.040 回答