gpt4 book ai didi

Sitecore - 在 Application_Start 中添加路由

转载 作者:行者123 更新时间:2023-12-02 19:13:59 24 4
gpt4 key购买 nike

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

最佳答案

这是为您创建路线的代码。在 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/前缀,它将处理您到指定 Controller 的路由,因此您将其称为:

/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" />

关于Sitecore - 在 Application_Start 中添加路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31855902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com