Próbuję użyć właściwości Sitecore Field.HasValue
w składni Razor, aby przetestować konkretne pole, ale niezależnie od tego, co próbuję, pole zawsze wydaje się być fałszywe.Pole Sitecore Field.HasValue zwraca fałsz, nawet jeśli istnieje wartość?
- Używam Sitecore 8.
- Pole Sitecore, "Number Header" jest polem Tekst jednowierszowy
Oto co usiłuję:
@{
var phoneNumber = "";
var numberField = Model.Item.Fields["Header Number"];
if (numberField != null && numberField.HasValue)
{
phoneNumber = numberField.Value;
}
}
Jak widać na poniższym zrzucie ekranu:
numberField
jest prawidłowo ustawiony na Sitecore polowegonumberField.HasValue
donosifalse
- Jednak
numberField.Value
jest (słusznie), zwracając wartość pola - powodu braku pożaru bloku
if
,phoneNumber
jest nigdy set:
Czy to błąd? Czy używam niepoprawnie HasValue
lub czy istnieje inna metoda Sitecore, której powinienem używać, aby bezpiecznie przetestować, czy pola mają wartość?
Nie możesz sprawdzić '! String.IsNullOrEmpty (numberField)' w swoim bloku 'if'? – jammykam
@jammykam - prawdopodobnie tym razem mogę to zobaczyć, ponieważ jest to ciąg znaków, ale bardziej martwię się bardziej złożonymi typami danych obsługiwanymi przez Sitecore i używam '.HasValue' w innym miejscu. – Robotnik