Я нашел немного лучшее решение, чем мой предыдущий ответ .
Используйте метод Page.__isset()
, чтобы проверить, определено ли свойство.
{% if this.page.__isset('meta_description') and this.page.meta_description is not empty %}
<meta name="description" content="{{ this.page.meta_description }}">
{% endif %}
Причина, по которой я думаю, что это немного лучше, заключается в том, что это можно использовать и с компонентом ViewBag.
Я столкнулся с той же проблемой, используя is defined
со свойством ViewBag. Однако решение для доступа к массиву не работало с ViewBag.
Чтобы избежать путаницы, я бы использовал метод __isset()
как для объектов Page, так и для компонента ViewBag.
Примечание. Если вы используете ViewBag в макете, вам также следует проверить, существует ли viewBag, поскольку не все страницы создают экземпляр компонента ViewBag.
{% if viewBag is defined and viewBag.__isset('canonical_url') and viewBag.canonical_url is not empty %}