Sto tentando di utilizzare la proprietà Field.HasValue
di Sitecore nella sintassi Razor per testare un campo particolare, ma non importa quello che provo, il campo sembra sempre falso.Campo di Sitecore.HasValue restituisce false, anche quando c'è un valore?
- sto usando Sitecore 8.
- Il campo Sitecore, "Intestazione Numero" è un campo di testo a riga singola
Ecco quello che sto cercando:
@{
var phoneNumber = "";
var numberField = Model.Item.Fields["Header Number"];
if (numberField != null && numberField.HasValue)
{
phoneNumber = numberField.Value;
}
}
Come potete vedere nello screenshot qui sotto:
numberField
è essere correttamente impostata su un Sitecore camponumberField.HasValue
sta riportandofalse
- Tuttavia
numberField.Value
è (correttamente) la restituzione del valore del campo - A causa del fallimento di sparare il blocco
if
,phoneNumber
è mai messo:
Si tratta di un bug? Sto usando HasValue
in modo errato o c'è un altro metodo Sitecore che dovrei usare per testare in sicurezza se i campi hanno un valore?
Non riesci a controllare '! String.IsNullOrEmpty (numberField)' nel tuo blocco 'if'? – jammykam
@jammykam - Probabilmente posso questa volta, visto che si tratta di una stringa, ma sono più preoccupato per i tipi di dati più complessi supportati da Sitecore e che sto usando '.HasValue' altrove. – Robotnik