Как вернуть страницу Umbraco 404, если в UmbracoVirtualNodeRouteHandler не найдено ни одного содержимого - PullRequest
0 голосов
/ 16 сентября 2018

Я использую UmbracoVirtualNodeRouteHandler, чтобы использовать пользовательскую логику для поиска моего контента Umbraco.Это прекрасно работает, за исключением случаев, когда я не нахожу контент.Когда я не нахожу контент, я хочу показать страницу Umbraco 404 .

protected override IPublishedContent FindContent(RequestContext requestContext, UmbracoContext umbracoContext)
    {
        var content = findMyContent();
        //attempt 1
        return content; //even if content is null
        //end attempt 1

        //attempt 2
        if(content == null)
        {
            throw new HttpException(404, "Blogpost not found");
        }

        return content;
        //end attempt 2
    }

Попытка 1 приводит к тому, что страница 404 по умолчанию не имеет стиля со словами
"Ресурс выпоиск был удален, изменилось его имя или временно недоступен. "Default IIS 404

Попытка 2 приводит к отображению моей пользовательской ошибки 500 страниц.Custom 500 Error Page

Как мне показать свою пользовательскую страницу Umbraco 404, когда я не нахожу контент?

1 Ответ

0 голосов
/ 17 сентября 2018

Вы пытались использовать конфигурацию в umbracoSettings.config?

Пользовательский узел для страницы 404 можно настроить, ссылаясь на идентификатор узла, GUID или XPATH:

<errors>
    <error404>1234</error404>  
</errors>
<!--
The value for error pages can be:
* A content item's integer ID   (example: 1234)
* A content item's GUID ID      (example: 26C1D84F-C900-4D53-B167-E25CC489DAC8)
* An XPath statement            (example: //errorPages[@nodeName='My cool error']
-->
...