1

初めてのカスタム Umbraco 5.1 ソリューションを作成しました。この時点で、カスタム部分マクロを含むカスタム テンプレートを含むコンテンツ アイテム(「ホームページ」) があります。ヘルパーを使用してエンティティをロードするにはどうすればよいですか? を使用していくつかの構造を追加しようとしましたが、同じエラーが発生し続けます。UmbracoHiveIdUri

Guid CLR 型に変換するには、パラメーター 'other' を Guid 型にする必要がありますが、それは 'Uri' で、値は xxx です。

マクロ部分:

@inherits PartialViewMacroPage
@using Umbraco.Cms.Web
@using Umbraco.Cms.Web.Macros
@Umbraco.Framework の使用

@{
    //これらはすべて同じエラー メッセージで失敗します...

    // 名前に基づく:
    var p = Umbraco.GetContentById(
      新しい HiveId(
        new Uri("content://Homepage")));

    //パスに基づく
    var p = Umbraco.GetContentById(
      新しい HiveId(
        new Uri("content://p__nhibernate/v__guid/5a4abe489a2e47858bd2a0580180b683")));

    // カスタム Hive プロバイダーを使用 (カスタム ツリー/セクションを使用してこれを追加すると、製品が表示されるため、Hive プロバイダーが機能します)
    var p = Umbraco.GetContentById(
      新しい HiveId(
        new Uri("custom://products/1")));
}

4

1 に答える 1

1

なぜ Uri を作成するのですか?
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 を取得していますか?

于 2012-05-21T21:59:10.923 に答える