【问题标题】:Sitecore - Adding route in Application_StartSitecore - 在 Application_Start 中添加路由
【发布时间】:2015-08-06 12:33:41
【问题描述】:

我正在使用 sitecore 7.5,我需要在 application_start 中添加新路由才能在 ajax 调用中使用它,但是当我运行应用程序时,sitecore 似乎将路由作为内容项处理,请提供任何帮助

【问题讨论】:

    标签: sitecore sitecore-mvc


    【解决方案1】:

    这是为您创建路线的代码。在 global.asax.cs 中,您将 从 App_Start 事件处理程序调用 RegisterRoutes:

        protected void Application_Start()
        {
            RouteConfig.RegisterRoutes(RouteTable.Routes);
        }
    

    然后您将路线指定为:

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.MapRoute(
                 name: "test",
                 url: "mvc/Forms/{action}/{id}",
                 defaults: new { controller = "Forms", action = "Test", id = UrlParameter.Optional }
               );
        }
    

    在这种情况下,您将拥有 /mvc/ 前缀,它将处理您指定控制器的路由,因此您将其称为:

    /mvc/Forms/Test/{you_may_pass_some_optional_GUID_here}
    

    这将路由到 FormsController 类操作方法 Test(string id) 但您可以省略 id 参数

    注意一点:请注意,在 Application_Start 中设置路由并不是最好的方法;更好的是在初始化管道中实现映射路由,因为它适合 Sitecore 架构:

    public class Initialize
    {
        public void Process(PipelineArgs args)
        {
            MapRoutes();
        }
    
        private void MapRoutes()
        {
            RouteTable.Routes.MapRoute(
                    "Forms.Test", 
                    "forms/test", 
                    new
                    {
                        controller = "FormsController",
                        action = "Test"
                    },
                    new[] { "Forms.Controller.Namespace" });
         }
    }
    

    实现的其余部分: 另外我之前在我的博客中写过一篇关于如何实现对路由的 ajax 调用的文章,它将指导您完成其余的实现过程:

    http://blog.martinmiles.net/post/editing-content-on-a-cd-server

    更新:还请确保您的配置有一个处理程序来处理您的前缀,见下文:

    <customHandlers>
        <handler trigger="~/mvc/" handler="sitecore_mvc.ashx" />
    

    【讨论】:

    • 非常感谢您的快速回复,但我的问题没有解决,网址仍然重定向到类似 xxx/sitecore/service/…
    • Mostafa,我已经更新了我的答案(在底部),以帮助您理清您在上面评论中提到的内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多