在Sitecore中我有一个项目。让我们说它的名字是weekDay
。它有一个默认字段(标准字段)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";
行遇到异常。
任何帮助都会非常感激。谢谢!
答案 0 :(得分:1)
您的代码没问题。唯一的问题是该字段未被称为"Sortorder"
,它被称为"__Sortorder"
。尝试:
weekDay.Fields["__Sortorder"].Value = "1";
大多数Sitecore标准字段都以双下划线为前缀,例如__Sortorder
,__Hidden
,__Display Name
,__Read Only
等。
答案 1 :(得分:1)
大多数标准字段都以__
为前缀(双下划线),因此字段名称实际为"__Sortorder"
。
weekDay.Fields["__Sortorder"].Value = "1";
// Or use the field ID from Sitecore.FieldIDs class
weekDay.Fields[Sitecore.FieldIDs.Sortorder].Value = "1";
Sitecore.FieldIDs
类包含许多(如果不是全部)标准字段的字段ID。
答案 2 :(得分:0)
你能检查一下weekDay是否为空?我想weekDay项目为空
要编辑weekDay项目,您将拥有:
if (weekDay!=null)
{
using (new EditContext(weekDay))
{
switch (weekDay.Name.ToLower())
{
case "monday":
weekDay.Fields["__Sortorder"].Value = "1";
break;
}
}
}