1

我创建了我的第一个自定义 Umbraco 5.1 解决方案。此时,我有一个带有自定义模板的内容项(“主页”),上面有一个自定义部分宏。现在如何使用帮助程序加载实体?我尝试使用 a 添加几个结构,但是我不断收到相同的错误:UmbracoHiveIdUri

参数“other”必须是 Guid 类型才能转换为 Guid CLR 类型,但它是“Uri”,值为:xxx

宏部分:

@inherits PartialViewMacroPage
@使用 Umbraco.Cms.Web
@使用 Umbraco.Cms.Web.Macros
@使用 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")));
}

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 回答