加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 在区域注册中注册路由

发布时间:2020-12-16 07:09:19 所属栏目:asp.Net 来源:网络整理
导读:我的区域有两条路线,一条是自定义路线,一条是默认后备路线,见下文 var dashboardRoute = new DashboardRoute( ObjectFactory.GetInstancePathResolver(),ObjectFactory.GetInstanceVirtualPathResolver(),null); context.Routes.Add(dashboardRoute); contex
我的区域有两条路线,一条是自定义路线,一条是默认后备路线,见下文

var dashboardRoute = new DashboardRoute(
            ObjectFactory.GetInstance<PathResolver>(),ObjectFactory.GetInstance<VirtualPathResolver>(),null);
        context.Routes.Add(dashboardRoute);

        context.Routes.MapRoute(
            "Dashboard_Default",// Route name
            "dashboard/{controller}/{action}/{id}",// URL with parameters
            new { controller = "pages",action = "index",id = UrlParameter.Optional,area = "Dashboard" } // Parameter defaults
        );

当我使用context.Routes.Add / MapRoute添加两个路由时,最后一个路由不起作用,但是当我在最后一个路由上使用context.MapRoute时它工作但我的自定义路由中的GetVirtualPath不用于actionlinks.我认为MapRoute只是context.Routes.Add的扩展?调试路由的最佳方法是什么?我已经使用了Phil Haacks路由调试,但它不适用于我的自定义路由,有没有其他方法来调试路由?

我真的需要一些帮助.
我的仪表板区域中的路线注册如下所示 –

var dashboardRoute = new PagesRoute(
            ObjectFactory.GetInstance<PathResolver>(),null);
        context.Routes.Add("Dashboard",dashboardRoute);

        context.MapRoute(
            "Dashboard_default","dashboard/{controller}/{action}/{id}",new { controller = "dashboard",id = UrlParameter.Optional }
        );

PageRoute是一个自定义路线,你可以在这里找到代码http://bit.ly/er6HPn
有了这条路线激活,像这样的链接很好用Html.ActionLink(“管理角色”,“manageroles”,“帐户”),但当我有一个链接,应该使用我的自定义路线,如Html.ActionLink(page.MetaData. Name,“edit”,“pages”,new {document = page},null)结果为http://stormbreaker.local/dashboard/pages/edit?document=Stormbreaker.Example.Models.Page,这意味着我的PageRoute中的GetVirtualPath从未被使用过.任何人都可以向我解释方式以及如何解决这个问题?

解决方法

解决了它,如果在RouteCollection对象中注册自定义RouteBase实例,则 IRouteWithArea接口允许您将该RouteBase实例与区域关联

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读