Tôi đang cố gắng sử dụng thuộc tính Field.HasValue
của Sitecore trong cú pháp Razor để kiểm tra một trường cụ thể, nhưng không có vấn đề gì tôi cố gắng, trường luôn có vẻ là sai.Fieldecas's Field.HasValue trở về sai, ngay cả khi có Giá trị?
- Tôi đang sử dụng Sitecore 8.
- Trường Sitecore, "Header Số" là một đơn-Line Text
Dưới đây là những gì tôi đang cố gắng:
@{
var phoneNumber = "";
var numberField = Model.Item.Fields["Header Number"];
if (numberField != null && numberField.HasValue)
{
phoneNumber = numberField.Value;
}
}
Như bạn có thể thấy trong ảnh chụp màn hình bên dưới:
numberField
đang được thiết lập một cách chính xác để một Sitecore DòngnumberField.HasValue
được báo cáofalse
- Tuy nhiên
numberField.Value
là (chính xác) trả lại giá trị của trường - Vì sự thất bại để bắn các khối
if
,phoneNumber
là không bao giờ được đặt:
Đây có phải là lỗi không? Tôi có đang sử dụng HasValue
không chính xác hoặc có phương pháp Sitecore khác mà tôi nên sử dụng để kiểm tra an toàn nếu các trường có giá trị không?
Bạn không thể kiểm tra '! String.IsNullOrEmpty (numberField)' trong khối 'if' của bạn? – jammykam
@jammykam - Có lẽ lần này tôi có thể thấy nó là một String, nhưng tôi lo lắng hơn về các kiểu dữ liệu phức tạp hơn mà Sitecore hỗ trợ và tôi đang sử dụng '.HasValue' ở nơi khác. – Robotnik