我在MVC Razor网站上有一个视图,它显示了一个产品价格的局部视图。 现在我的问题是我用这个局部视图显示价格:
@model decimal
<span>@GlobalModelExtensions.Currency.Symbol</span>
<span>@Model.ToString("N0")</span>
这显示了正确的价格,但现在我的客户希望如果价格只包含一位数,那么他需要显示两位小数,如果价格超过一位数,则不会显示两位小数。
实现这一目标的最佳方法是什么?
UPDATE:
This is an example of what i want:
If the price is 90.659 then it must be shown: 91
If the price is 5.659 then it must be shown: 5.66
答案 0 :(得分:3)
您无法将条件逻辑放入自定义数字格式字符串中。最好的地方是将该逻辑放在模型中,并将属性公开为string
而不是浮点类型。
public class MyModel
{
public decimal Price {get; set;}
public string FormattedPrice
{ get
{ return Price >= 10
? Price.ToString("#,#")
: Price.ToString("#,#.00");
}
}
}
答案 1 :(得分:2)
这样的东西?
@if(Model > 9){
<text>@Model.ToString("N0")</text>
}
else
{
<text>@Model.ToString("N2")</text>
}
答案 2 :(得分:1)
@Model.ToString("#.##");
或
@Model.ToString("N2");
更新:这是我想要的一个例子:如果价格是90.659那么它必须是:91如果价格是5.659那么它必须是:5.66
if (@Model < 10) @Model.ToString("#.##") else Convert.ToInt32(@Model).ToString()