我在 John West 的“Professional Sitecore Development”一书中读到它说在获取项目字段值时最好使用字段 ID 而不是字段名称。
但是 sc:text、sc:link、sc:image 等 sitecore 控件有一个名为 field 的属性,它使用字段名称。所以,我现在很困惑是将整个项目更改为 Field ID,还是保留字段名称以与 sitecore 用法保持一致。
如有任何建议,我们将不胜感激。
最佳答案
是的,Sitecore 允许您使用名称和 ID。此外,Sitecore 允许您在同一模板中使用相同的字段名称,这可能会导致一些混淆。当然,ID 不能重复。
我认为使用 ID 比使用名称更可靠。在 Sitecore 上可以很容易地更改名称,并且在发生这种情况时很难找到错误。在有人注意到该字段值不存在之前,您不会遇到编译错误或类似错误。
一个好的方法是使用代码生成器(如 T4 或 TDS)来创建要在代码中使用的强类型类。像这样的东西:
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}");
}
}
然后你在你的控件上走那条路:
@Html.Sitecore().Field(MyTemplate.MyGroup.Foo); //where foo returns the id.
希望对您有所帮助..
关于c# - Sitecore 字段 ID 与字段名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22817722/