特定のフィールドをテストするためにSitecoreのField.HasValue
プロパティをRazor構文で使用しようとしていますが、何を試してもフィールドは常にfalseと思われます。私はサイトコア8を使用してい値がある場合でも、SitecoreのField.HasValueがfalseを返しますか?
- は
- サイトコアフィールド、「ヘッダー数」は、ここで私がしようとしているものだ単一行のテキストフィールド
です:
@{
var phoneNumber = "";
var numberField = Model.Item.Fields["Header Number"];
if (numberField != null && numberField.HasValue)
{
phoneNumber = numberField.Value;
}
}
下記のスクリーンショットでご覧いただけるとおり、
numberField
が正常(正常)false
- しかし
numberField.Value
が報告ためif
ブロックを発射する障害の分野 - の値を返しているサイトコアフィールド
numberField.HasValue
に設定されている、phoneNumber
であります設定されたことがない:
これはバグですか? HasValue
を間違って使用しているのですか、フィールドに値があるかどうかを安全にテストするために使用する別のSitecoreメソッドがありますか?
あなたの 'if'ブロックで'!String.IsNullOrEmpty(numberField) 'をチェックできませんか? – jammykam
@jammykam - これは文字列のように見えますが、Sitecoreがサポートするより複雑なデータ型と、他の場所で '.HasValue'を使用していることを心配しています。 – Robotnik