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 报道 falsenumberField.Value(正确地)返回字段的值if块,phoneNumber因此永远不会设置:这是一个错误吗?我使用HasValue不正确或是否有另一个Sitecore方法我应该用来安全地测试字段是否有值?
此字段的值很可能来自“标准值”项(已继承)。
HasValue 只有在项目本身上设置了值时,属性才返回true。
这是HasValueproperty 的实现:
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 次 |
| 最近记录: |