如何将路由配置更改为自定义路由?

How Can I change the route config to the custom route?

我尝试将我的网站 URL 更改和优化为 SEO 友好 Url。我的意思是我将 url Like ~/Home/Contact 更改为 ~/contact 等。我也将 ~/Home/Index URL 更改为 ~/home。

当我 运行 我的网站因为我将属性 [Route("~/home")] 添加到我的索引操作应用程序时找不到我的默认路由。

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapMvcAttributeRoutes();

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

我不知道如何将我的 MapRoute 更改为新的 SEO 友好 URL。 我也不想丢失我的 mvc URL 模式

您可以在 App_Start 文件夹中使用此 class:

public static class RoutingConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {

            #region IgnoreRoutes
            routes.IgnoreRoute("Content/{*pathInfo}");
            routes.IgnoreRoute("Scripts/{*pathInfo}");
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.IgnoreRoute("favicon.ico");
            routes.IgnoreRoute("{resource}.ico");
            routes.IgnoreRoute("{resource}.png");
            routes.IgnoreRoute("{resource}.jpg");
            routes.IgnoreRoute("{resource}.gif");
            routes.IgnoreRoute("{resource}.txt");
            #endregion

            routes.LowercaseUrls = true;
            routes.MapMvcAttributeRoutes();
           // AreaRegistration.RegisterAllAreas();

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}",
                defaults:
                    new
                    {
                        controller = MVC.Home.Name,
                        action = MVC.Home.ActionNames.Index,
                        id = UrlParameter.Optional
                    },
                namespaces: new[] {$"{typeof (RoutingConfig).Namespace}.Controllers"}
                );
        }

并在 Global.asax.cs Application_Start 方法中使用它。

  RoutingConfig.RegisterRoutes(RouteTable.Routes);

我使用了 T4MVC nuget package.