EpiServer:如何检查页面是否存在?

发布于 2024-08-11 17:20:50 字数 282 浏览 8 评论 0原文

有没有一种方法可以优雅地检查 EpiServer CMS 5 中是否存在页面(给定 pageId 整数)而不必捕获由

DataFactory.Instance 抛出的 PageNotFoundException。 GetPage(pageReference)

(EpiServer 会很乐意使用不存在的 pageId 创建 PageReference)。

我当然可以检查页面是否存在而不引发异常或进行大规模循环吗?

Is there a way to gracefully check whether a page exists in EpiServer CMS 5 (given a pageId integer) without having to catch the PageNotFoundException thrown by

DataFactory.Instance.GetPage(pageReference)

(EpiServer will happily create a PageReference using a non existing pageId).

Surely I can check whether a page exists without throwing an exception or doing a massive loop?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

狼性发作 2024-08-18 17:20:50

[EPiServer CMS 5 R2 SP2]
不,不绕过页面缓存就不行,这比捕获异常更昂贵。

[EPiServer CMS 5 R2 SP2]
No, not without bypassing the page cache and that is more expensive than catching the exception.

み零 2024-08-18 17:20:50

我发现在扩展方法中进行捕获很好:

public static bool TryGetPage(this PageReference pageReference, out PageData pd)
{
    try
    {
        pd = DataFactory.Instance.GetPage(pageReference);
        return true;
    }
    catch (Exception)
    {
        pd = null;
        return false;
    }
}

I find it nice to do the catching in an extension method:

public static bool TryGetPage(this PageReference pageReference, out PageData pd)
{
    try
    {
        pd = DataFactory.Instance.GetPage(pageReference);
        return true;
    }
    catch (Exception)
    {
        pd = null;
        return false;
    }
}
つ低調成傷 2024-08-18 17:20:50

PageReference 有一个静态方法应该有所帮助:

PageReference.IsNullOrEmpty(pageLink)

There is a static method of PageReference which should help:

PageReference.IsNullOrEmpty(pageLink)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文