Sitecore 的 Field.HasValue 返回 false,即使有值?

Sitecore's Field.HasValue returning false, even when there is a Value?

我试图在 Razor 语法中使用 Sitecore 的 Field.HasValue 属性 来测试特定字段,但无论我尝试什么,该字段似乎总是错误的。

这是我正在尝试的:

@{
    var phoneNumber = "";
    var numberField = Model.Item.Fields["Header Number"];
    if (numberField != null && numberField.HasValue)
    {
        phoneNumber = numberField.Value;
    }
}

如下图所示:

这是一个错误吗?我是在错误地使用 HasValue 还是应该使用另一种 Sitecore 方法来安全地测试字段是否具有值?

此字段的值很可能来自标准值项(继承)。

HasValue 属性 仅当在项目本身上设置值时 returns 为真。

下面是HasValue属性的实现:

public bool HasValue
{
  get
  {
    return this.GetValue(false, false) != null;
  }
}

public string GetValue(bool allowStandardValue, bool allowDefaultValue)
{
  ...
}

您可以检查 ContainsStandardValue 属性 以检查该值是否来自标准值。