c# - Sitecore 字段 ID 与字段名称

标签 c# sitecore sitecore6 sitecore-dms

我在 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/

相关文章:

sitecore - 如何以编程方式批准 Sitecore 中的内容项

sitecore - 从下拉列表中选择时间时删除 sitecore 中的时间选项

sitecore - 在 Sitecore 中配置多个站点

installation - 如何将现有的Sitecore 6.2站点部署到新环境?

c# - 抓取 JavaScript 动态生成的数据

c# - 设置 Bing map 缩放更大的位置 React

c# - 使用 ArcGIS Runtime 本地服务器实现 MVVM

c# - Microsoft Unity 接口(interface)拦截和构造函数注入(inject)的区别

c# - 线程在 Asp.Net 中被中止 Web 服务

asp.net - 在集成模式下运行的 IIS 7 经典 ASP 应用程序