Umbraco 5 Очень простой - Как загрузить сущность в макрос (или фактически используя HiveId)?

Я создал свое первое пользовательское решение Umbraco 5.1. На данный момент у меня есть элемент контента ("домашняя страница") с пользовательским шаблоном, в котором есть собственный частичный макрос. Теперь, как мне загрузить объект, используя Umbraco помощник? Я пытался добавить несколько HiveId конструкции с использованием UriОднако я продолжаю получать ту же ошибку:

Параметр "other" должен иметь тип Guid для преобразования в тип Guid CLR, но это "Uri" со значением: xxx

Частичный макрос:

@inherits PartialViewMacroPage
@using Umbraco.Cms.Web
@using Umbraco.Cms.Web.Macros
@using Umbraco.Framework

@ {
    // Все они терпят неудачу с тем же сообщением об ошибке...

    // На основании имени:
    var p = Umbraco.GetContentById(новый HiveId(новый Uri("content://Homepage")));

    // На основе пути
    var p = Umbraco.GetContentById (новый HiveId(новый Uri("content://p__nhibernate/v__guid/5a4abe489a2e47858bd2a0580180b683")));

    // С пользовательским провайдером Hive (я добавил это, используя пользовательское дерево / раздел, и продукты отображаются, поэтому провайдер Hive работает)
    var p = Umbraco.GetContentById(новый HiveId(новый Uri("custom://products/1")));
}

1 ответ

Решение

Почему ты создаешь Ури?
HiveId принимает строковый параметр, который вы можете использовать вместо. Так же Umbraco.GetContentById(string id)

Я сертифицирован Umbraco 5 и мы никогда не пользовались Uri перегрузка HiveId конструктор.

var p = Umbraco.GetContentById("yourStringHiveIdHere"); //(string overload) or 
var p = Umbraco.GetContentById(new HiveId("yourSringHiveIdHere")); // (HiveId overload)

Кроме того, откуда вы получаете свой HiveId?

Другие вопросы по тегам