【问题标题】:How Can I change the route config to the custom route?如何将路由配置更改为自定义路由?
【发布时间】:2020-02-03 16:08:24
【问题描述】:

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

当我运行我的网站时,因为我将 attr [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 模式

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-5 entity-framework-6


    【解决方案1】:

    您可以在 App_Start 文件夹中使用该类:

    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使用。

    【讨论】:

      猜你喜欢
      • 2014-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      • 2012-11-22
      • 2013-01-18
      • 1970-01-01
      相关资源
      最近更新 更多