使用Html.DisplayFor()时更短,更简洁的条件

时间:2015-08-15 05:51:47

标签: asp.net asp.net-mvc razor

有以下剃刀代码。

<p>@Html.DisplayFor(modelitem => item.Price)</p>

现在,当价格为0时,我需要显示文本“Free”。所以我做了以下事情。

<p>
  @(item.Price == 0 ? "Free" : string.Format("{0:$0.00}", item.Price))
</p>

看起来非常冗长。有没有更好的方法呢?

2 个答案:

答案 0 :(得分:1)

您可以使用DisplayTemplates,首先在(~/Views/Shared/DisplayTemplates/Price.cshtml)中创建模板:

@model float
<div>
    @(Math.Abs(Model) < 1 ? "Free" : string.Format("{0:$0.00}", Model))
</div>

然后使用这种方式:

@Html.DisplayFor(p => item.Price, "Price")

答案 1 :(得分:0)

在您的模型中尝试rails server