umbraco.decimal未显示负值的问题

时间:2017-05-23 15:40:26

标签: umbraco umbraco7

我们在Umbraco Cloud上使用Umbraco 7.5.x.我们有一个Umbraco.Decimal数据类型的自定义文档类型。

正在存储正确的值,因为我们可以从后台编辑它们。但是当我们尝试显示这些值时,只能正确显示零以上的值。不显示负值(例如-0.75)。

显示此数据类型值的正确方法是什么,以便显示所有值?

我们上面的用例是,我们有一个显示股票价格值的节点,有时可能是负值。值存储在Umbraco.decimal字段中。正值显示没有任何问题。任何负值都显示为零。

例如,在我们的视图中,我们抓取特定节点,并从字段中显示其值:

@{
var lastStockValues = Umbraco.Content(123).Children.Last();
}    
<div>@((lastStockValues.stockdelta*100).ToString("0.##")) % </div>

谢谢!

1 个答案:

答案 0 :(得分:0)

我强烈建议使用键入模型而不是动态模型。这样您就可以确定您的类型是正确的:

@{
    var lastStockValuesNode = Umbraco.TypedContent(123).Children().Last();
}
<div>@((lastStockValuesNode.GetPropertyValue<decimal>("stockdelta") * 100).ToString("0.##"))</div>

在这种情况下,lastStockValuesNode的类型为IPublishedContent,表示Umbraco中的页面/节点。

然后,您可以使用方法.GetPropertyValue<type>(alias)。在这种情况下,我们要转换为decimal

如果动态类型将小数转换为错误类型,这可能会解决您的问题。

文档:https://our.umbraco.org/documentation/reference/querying/UmbracoHelper/#typedcontent-int-id