Sitecore 如何编辑项目的标准字段值

Sitecore how to edit an Items's Standard Field Value

在 Sitecore 中我有一个项目。假设它的名字是 weekDay。它有一个默认字段(Standard Fields)Sortorder。我想编辑这个字段并在里面放一个字符串。但是下面的代码给我 System.NullReferenceException: Object reference not set to an instance of an object.

switch (weekDay.Name.ToLower())
{
    case "monday":
        weekDay.Editing.BeginEdit();
        weekDay.Fields["Sortorder"].Value = "1";
        weekDay.Editing.EndEdit();
        break;
}

我在上面的代码中 weekDay.Fields["Sortorder"].Value = "1"; 这一行遇到异常。

任何帮助将不胜感激。谢谢!!

你能检查一下 weekDay 是否为 null 吗?我猜 weekDay 项目是空的

要编辑 weekDay 项目,您将拥有:

 if (weekDay!=null)
     {
    using (new EditContext(weekDay))  
     {  
        switch (weekDay.Name.ToLower())
                    {
                        case "monday":
                            weekDay.Fields["__Sortorder"].Value = "1";
                            break;
                     }
       }
      }

你的代码没问题。唯一的问题是该字段不叫 "Sortorder",而是叫 "__Sortorder"。尝试:

weekDay.Fields["__Sortorder"].Value = "1";

大多数 Sitecore 标准字段都带有双下划线前缀,例如__Sortorder__Hidden__Display Name__Read Only

大多数标准字段都以__(双下划线)为前缀,所以字段名实际上是"__Sortorder".

weekDay.Fields["__Sortorder"].Value = "1";

// Or use the field ID from Sitecore.FieldIDs class
weekDay.Fields[Sitecore.FieldIDs.Sortorder].Value = "1";

Sitecore.FieldIDs class 包含许多(如果不是全部)标准字段的字段 ID。