我试图在Razor语法中使用Sitecore的Field.HasValue
属性来测试特定的字段,但无论我尝试什么,该字段总是似乎是错误的。Sitecore的Field.HasValue返回false,即使有值时也是如此?
- 我使用Sitecore的8
- 的Sitecore的领域,“头数”是单行文本字段
这里就是我想:
@{
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方法我应该用来安全地测试字段是否有值?
你不能在你的if区块中检查'!String.IsNullOrEmpty(numberField)'吗? – jammykam
@jammykam - 我可能这次看到它是一个String,但我更担心Sitecore支持的更复杂的数据类型,并且我在其他地方使用'.HasValue'。 – Robotnik