Sitecoreを使用すると、カスタムASP.NET MVCルートをSitecoreサイトで使用できます。
ただし、これらのルートを不適切に追加すると、ダイアログが壊れたり、ボタンが機能しなくなったりするなど、Sitecore クライアントの使用に関するさまざまな問題が発生する可能性があります。
たとえば、Global.asaxファイルでカスタム ルートを定義した結果として、Sitecoreによって定義され、Sitecoreクライアント機能に使用されるいくつかのデフォルト ルートの競合を引き起こします。
この記事では、Sitecoreクライアントで使用されるルートと競合しないようにカスタム ルートを追加するためのガイドを提供します。
ASP.NET ルーティングの詳細については、次の記事を参照してください:
https://msdn.microsoft.com/en-us/library/cc668201.aspx
デフォルトのSitecoreルートと競合しないようにカスタムASP.NET MVCルートを定義するには、以下の手順に従ってください。
public class RegisterCustomRoute
{
public virtual void Process(PipelineArgs args)
{
RouteTable.Routes.MapRoute("CustomRoute", "some/route/{controller}/{action}/{id}");
}
}
<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<pipelines>
<initialize>
<processor type="MyNamespace.RegisterCustomRoute, MyAssembly" patch:before="processor[@type='Sitecore.Mvc.Pipelines.Loader.InitializeRoutes, Sitecore.Mvc']" />
</initialize>
</pipelines>
</sitecore>
</configuration>
注意:カスタム構成パッチ ファイルがSitecore 構成の最後のパッチとして適用されていることを確認してください。対応する例は、以下からダウンロードできます: