Rob*_*nik 6 c# sitecore razor sitecore8
我试图Field.HasValue
在Razor语法中使用Sitecore的属性来测试特定的字段,但无论我尝试什么,该字段似乎总是错误的.
这是我正在尝试的:
@{
var phoneNumber = "";
var numberField = Model.Item.Fields["Header Number"];
if (numberField != null && numberField.HasValue)
{
phoneNumber = numberField.Value;
}
}
Run Code Online (Sandbox Code Playgroud)
正如您在下面的屏幕截图中看到的:
numberField
正确设置为Sitecore字段numberField.HasValue
报道 false
numberField.Value
(正确地)返回字段的值if
块,phoneNumber
因此永远不会设置:这是一个错误吗?我使用HasValue
不正确或是否有另一个Sitecore方法我应该用来安全地测试字段是否有值?
此字段的值很可能来自“标准值”项(已继承)。
HasValue
只有在项目本身上设置了值时,属性才返回true。
这是HasValue
property 的实现:
public bool HasValue
{
get
{
return this.GetValue(false, false) != null;
}
}
public string GetValue(bool allowStandardValue, bool allowDefaultValue)
{
...
}
Run Code Online (Sandbox Code Playgroud)
您可以检查ContainsStandardValue
属性以检查该值是否来自标准值。
归档时间: |
|
查看次数: |
917 次 |
最近记录: |