Sitecore - 在 Application_Start 中添加路线
Sitecore - Adding route in Application_Start
我正在使用 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/ 前缀,它将处理您指定控制器的路由,因此您将其命名为:
/mvc/Forms/Test/{you_may_pass_some_optional_GUID_here}
这将路由到 FormsController class 操作方法 Test(string id) 但您可以省略 id 参数
一点注意:请注意,在Application_Start中设置路由并不是最好的方法;更好的方法是在 Initialize 管道中实现映射路由,因为它适合 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 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/ 前缀,它将处理您指定控制器的路由,因此您将其命名为:
/mvc/Forms/Test/{you_may_pass_some_optional_GUID_here}
这将路由到 FormsController class 操作方法 Test(string id) 但您可以省略 id 参数
一点注意:请注意,在Application_Start中设置路由并不是最好的方法;更好的方法是在 Initialize 管道中实现映射路由,因为它适合 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" />