访问Sitecore模板字段值

时间:2014-02-13 23:48:57

标签: sitecore sitecore-mvc

这可能会在某处记录,但我找不到它。

我使用Sitecore帮助器和razor语法将值放入我的视图中:

@Html.Sitecore().Field("foo"); 

这很好用,但是,我在Groups中定义了Fields,其中一些具有相同的名称,如:

Group1:foo

Group2:foo

问题:有没有办法按组访问该字段? 这样的事情(我已经尝试过):

@Html.Sitecore().Field("Group1.foo");

2 个答案:

答案 0 :(得分:5)

只要我知道无法使用部分名称。

我甚至会避免在不同的部分之间使用相同的字段名称。

或者选项是传递字段ID,然后创建类或常量以不是硬代码ID

@Html.Sitecore().Field("{E77E229A-2A34-4F03-9A3E-A8636076CBDB}");

or

@Html.Sitecore().Field(MyTemplate.MyGroup.Foo); //where foo returns the id.

编辑:

MyTemplate.MyGroup.Foo将是您自己创建的类/结构,只是为了使您的项目中的引用更容易,更可靠。 (您可以使用工具像T4模板一样自动生成它)

public static struct MyTemplate
{
    public static struct MyGroup1
    {
        public static readonly ID Foo = new ID("{1111111-1111-1231-1231-12312323132}");
    }
    public static struct MyGroup2
    {
        public static readonly ID Foo = new ID("{9999999-9999-xxxx-1231-12312323132}");
    }
}

答案 1 :(得分:1)

尝试通过字段的GUID进行访问。这样,即使它们具有相同的名称,API也能够加载适当的字段。