Sitecore 的 Field.HasValue 返回 false,即使有值?
Sitecore's Field.HasValue returning false, even when there is a Value?
我试图在 Razor 语法中使用 Sitecore 的 Field.HasValue
属性 来测试特定字段,但无论我尝试什么,该字段似乎总是错误的。
- 我正在使用 Sitecore 8。
- Sitecore 字段,"Header Number" 是单行文本字段
这是我正在尝试的:
@{
var phoneNumber = "";
var numberField = Model.Item.Fields["Header Number"];
if (numberField != null && numberField.HasValue)
{
phoneNumber = numberField.Value;
}
}
如下图所示:
numberField
已正确设置为 Sitecore 字段
numberField.HasValue
正在报告 false
- 但是
numberField.Value
是(正确地)返回字段的值
- 由于未能触发
if
块,phoneNumber
从未设置:
这是一个错误吗?我是在错误地使用 HasValue
还是应该使用另一种 Sitecore 方法来安全地测试字段是否具有值?
此字段的值很可能来自标准值项(继承)。
HasValue
属性 仅当在项目本身上设置值时 returns 为真。
下面是HasValue
属性的实现:
public bool HasValue
{
get
{
return this.GetValue(false, false) != null;
}
}
public string GetValue(bool allowStandardValue, bool allowDefaultValue)
{
...
}
您可以检查 ContainsStandardValue
属性 以检查该值是否来自标准值。
我试图在 Razor 语法中使用 Sitecore 的 Field.HasValue
属性 来测试特定字段,但无论我尝试什么,该字段似乎总是错误的。
- 我正在使用 Sitecore 8。
- Sitecore 字段,"Header Number" 是单行文本字段
这是我正在尝试的:
@{
var phoneNumber = "";
var numberField = Model.Item.Fields["Header Number"];
if (numberField != null && numberField.HasValue)
{
phoneNumber = numberField.Value;
}
}
如下图所示:
numberField
已正确设置为 Sitecore 字段numberField.HasValue
正在报告false
- 但是
numberField.Value
是(正确地)返回字段的值 - 由于未能触发
if
块,phoneNumber
从未设置:
这是一个错误吗?我是在错误地使用 HasValue
还是应该使用另一种 Sitecore 方法来安全地测试字段是否具有值?
此字段的值很可能来自标准值项(继承)。
HasValue
属性 仅当在项目本身上设置值时 returns 为真。
下面是HasValue
属性的实现:
public bool HasValue
{
get
{
return this.GetValue(false, false) != null;
}
}
public string GetValue(bool allowStandardValue, bool allowDefaultValue)
{
...
}
您可以检查 ContainsStandardValue
属性 以检查该值是否来自标准值。