有没有一种方法可以优雅地检查 EpiServer CMS 5 中是否存在页面(给定 pageId 整数),而不必捕获PageNotFoundException
由
DataFactory.Instance.GetPage(pageReference)
(EpiServer 将愉快地使用不存在的 pageId 创建一个 PageReference)。
当然,我可以检查页面是否存在而不会引发异常或进行大规模循环?
有没有一种方法可以优雅地检查 EpiServer CMS 5 中是否存在页面(给定 pageId 整数),而不必捕获PageNotFoundException
由
DataFactory.Instance.GetPage(pageReference)
(EpiServer 将愉快地使用不存在的 pageId 创建一个 PageReference)。
当然,我可以检查页面是否存在而不会引发异常或进行大规模循环?
[EPiServer CMS 5 R2 SP2] 不,不能不绕过页面缓存,这比捕获异常更昂贵。
我发现在扩展方法中进行捕捉很好:
public static bool TryGetPage(this PageReference pageReference, out PageData pd)
{
try
{
pd = DataFactory.Instance.GetPage(pageReference);
return true;
}
catch (Exception)
{
pd = null;
return false;
}
}
有一个 PageReference 的静态方法应该会有所帮助:
PageReference.IsNullOrEmpty(pageLink)