我試圖在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