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