这可能会在某处记录,但我找不到它。
我使用Sitecore帮助器和razor语法将值放入我的视图中:
@Html.Sitecore().Field("foo");
这很好用,但是,我在Groups中定义了Fields,其中一些具有相同的名称,如:
Group1:foo
Group2:foo
问题:有没有办法按组访问该字段? 这样的事情(我已经尝试过):
@Html.Sitecore().Field("Group1.foo");
答案 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也能够加载适当的字段。