ASP中的路由净MVC

本文关键字:MVC 路由 ASP | 更新日期: 2023-09-27 17:49:43

我正在尝试路由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。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下网址,并确保拼写正确。

ASP中的路由净MVC

需要先指定自定义路由。默认路由没有约束,所以它可以匹配任何URL。当您向http://example.org/School发出请求时,ASPNET 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 }
    );
}