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

asp.net-mvc-4 – DD4T默认路由不起作用

发布时间:2020-12-16 03:44:02 所属栏目:asp.Net 来源:网络整理
导读:我正在使用DD4T框架与SDL Tridion 2011和ASP.NET MVC4 我有一些非DD4T控制器和视图,我想使用,但是当我尝试去这些网址时,我收到404错误. 这是我的路线表 public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*
我正在使用DD4T框架与SDL Tridion 2011和ASP.NET MVC4

我有一些非DD4T控制器和视图,我想使用,但是当我尝试去这些网址时,我收到404错误.

这是我的路线表

public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        // Route for SDL Tridion UI 2011 (Aka !SiteEdit)
        routes.MapRoute(
            "SiteEditBlankPage","se_blank.html",new { controller = "Empty",action = "Index" });

        routes.MapRoute(
            null,// Route name
            "xml/{*PageId}",// URL with parameters
            new { controller = "Page",action = "Xml" },// Parameter defaults
           new { pageId = @"^(.*)?$" } // Parameter constraints
        );

        // Tridion page route
        routes.MapRoute(
           "TridionPage","{*PageId}",new { controller = "Page",action = "Page" },// Parameter defaults
           new { pageId = @"^(.*)?$" } // Parameter constraints
        );

        routes.MapRoute(
            null,// Route name
            "{controller}/{action}/{id}",// URL with parameters
            new { controller = "Home",action = "Index",id = UrlParameter.Optional } // Parameter defaults
        );
    }

我已经尝试在Tridion上面移动默认路由,但后来我为Tridion页面获得了404s.

让它工作的唯一方法似乎是有一个特定的路径到我的控制器,例如:

routes.MapRoute(
           null,// Route name
           "MyController/{action}/{id}",// URL with parameters
           new { controller = "MyController",id = UrlParameter.Optional } // Parameter defaults
       );

有人有主意吗?由于上述解决方案并不理想.

(我的web.config中没有任何UI 2012配置)

解决方法

AFAICS有几种选择:

>如果你能从’普通’url(扩展名,startpath等)识别Tridion url,你可以通过调整TridionPage路由来解决它.但是我认为这不是你的选择,因为如果你能从正常人那里认出Tridion的url,你就已经想出了这个解决方案;)
>在TridionPage路由上实现路由约束.如果请求的URL在Broker中,请检查此routeconstraint.如果为true:返回true,否则返回false.如果返回false,则下一个匹配的路由将处理该请求.
虽然不确定性能.
>您自己的选择:普通页面的特定路线.

我相信我错过了一些选择.希望其他人在这里分享他们.

(编辑:李大同)

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

    推荐文章
      热点阅读