繁体   English   中英

如何知道哪个默认路由是默认路由,并将在此代码的MVC 4中执行?

[英]How to know which default route is default and will be excute in MVC 4 of this code?

我有一个RouteConfig.cs文件,但我不知道该怎么做,请告诉我并向我解释。

关于asp.net MVC4

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

            #region Special Page
            // Admin Router
            routes.MapRoute(
                name: "Admin",
                url: "Admin/",
                defaults: new { area = "Admin", controller = "dashboard", action = "index" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

            // Error Page, NotFound And UnderConstruction
            routes.MapRoute(
                name: "ErrorsLang",
                url: "{culture}/Errors/{action}",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Errors", action = "NotFound" },
                constraints: new { culture = "[a-z]{2}" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

            routes.MapRoute(
                name: "Errors",
                url: "Errors/{action}",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Errors", action = "NotFound" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

            // Home
            //routes.MapRoute(
            //    name: "Home",
            //    url: "{culture}/",
            //    defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Home", action = "Index", type = "", slug = "" },
            //    namespaces: new[] { "PixelCMS.Controllers" }
            //);

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

            // Common
            routes.MapRoute(
                name: "Widget",
                url: "Widget/{action}/{id}",
                defaults: new { controller = "Widget", action = "", id = UrlParameter.Optional },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

            // Login
            routes.MapRoute(
                name: "LoginPanel",
                url: "account/{action}",
                defaults: new { controller = "Account", action = "Register" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

            // Login
            routes.MapRoute(
                name: "Account",
                url: "account/{action}/{id}",
                defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

            routes.MapRoute(
                name: "AccountLang",
                url: "{culture}/account/{action}/{id}",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Account", action = "Login", id = UrlParameter.Optional },
                constraints: new { culture = "[a-z]{2}" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

            // Contact
            routes.MapRoute(
                name: "ContactLang",
                url: "{culture}/Contact/{add}",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Contact", add = UrlParameter.Optional },
                constraints: new { culture = "[a-z]{2}" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

            routes.MapRoute(
                name: "Contact",
                url: "Contact/{add}",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Contact",add=UrlParameter.Optional },
                namespaces: new[] { "PixelCMS.Controllers" }
            );


            // Search
            routes.MapRoute(
                name: "SearchLang",
                url: "{culture}/Search/",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Search" },
                constraints: new { culture = "[a-z]{2}" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );
            routes.MapRoute(
                name: "Search",
                url: "Search/",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Search" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

            // cart
            routes.MapRoute(
                name: "ShoppingCartLang",
                url: "{culture}/ShoppingCart/",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "ShoppingCart", action = "Index", type = "", slug = "" },
                constraints: new { culture = "[a-z]{2}" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );
            routes.MapRoute(
                name: "ShoppingCart",
                url: "ShoppingCart/",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "ShoppingCart", action = "Index", type = "", slug = "" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );
            #endregion

            // Slug
            //routes.MapRoute(
            //    name: "Slug",
            //    url: "{culture}/{slug1}/{slug2}/{slug3}/{slug4}",
            //    defaults: new { culture = UrlParameter.Optional, controller = "Content", action = "Slug", slug1 = UrlParameter.Optional, slug2 = UrlParameter.Optional, slug3 = UrlParameter.Optional, slug4 = UrlParameter.Optional },
            //    namespaces: new[] { "PixelCMS.Controllers" }
            //);

            routes.MapRoute(
                name: "SlugLang",
                url: "{culture}/{slug1}/{slug2}/{slug3}/{slug4}",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Slug", slug1 = UrlParameter.Optional, slug2 = UrlParameter.Optional, slug3 = UrlParameter.Optional, slug4 = UrlParameter.Optional },
                constraints: new { culture = "[a-z]{2}" },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

            routes.MapRoute(
                name: "Slug",
                url: "{slug1}/{slug2}/{slug3}/{slug4}",
                defaults: new { culture = CultureHelper.GetDefaultCulture(), controller = "Content", action = "Slug", slug1 = UrlParameter.Optional, slug2 = UrlParameter.Optional, slug3 = UrlParameter.Optional, slug4 = UrlParameter.Optional },
                namespaces: new[] { "PixelCMS.Controllers" }
            );

`

而且我不知道RouteConfig是否会归档站点的所有链接? 我是有关MVC4的新手,以及路由文件和

@HTML.Action("LoadURL","Common",new {...})
@Html.Action().

该命令与Routeconfig.cs相对应

很抱歉给您回信而不是写评论。 (没有足够的声誉来发表评论)

路线按定义的顺序工作,在您的情况下,您定义了多个路线,并且无论何时发出任何请求,它都会从顶部开始并遍历到底部,与该规则匹配的第一个将被命中。

而且在大多数情况下,您不需要这么多的路由部分,只有很少的逻辑部分可以为您提供帮助。 对于一个实例

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

这将尝试将url与控制器名称匹配,然后查看该控制器是否有任何动作,在这种情况下,id是可选的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM