LayoutResolver
您提到的管道仅与Webforms项目相关。。
Layout
下的项目
/sitecore/layout/Layouts
用于辅助MVC布局。然后创建处理器,根据需要将布局项切换到辅助项:
using System;
using Sitecore;
using Sitecore.Mvc.Pipelines.Response.GetPageRendering;
namespace MyProject.CMS.Custom.Pipelines.GetPageRendering
{
public class GetCustomLayoutRendering : GetPageRenderingProcessor
{
public override void Process(GetPageRenderingArgs args)
{
if (args.Result == null)
return;
if (!ShouldSwitchLayout()) //or whatever your custom logic is
return;
args.Result.LayoutId = new Guid("{guid-to-alt-layout}");
args.Result.Renderer = null;
}
}
}
mvc.getPageRendering
<mvc.getPageRendering>
<processor type="MyProject.CMS.Custom.Pipelines.GetPageRendering.GetCustomLayoutRendering, MyProject.CMS.Custom"/>
</mvc.getPageRendering>
重要的是设置
args.Result.Renderer