如何用剃刀修复以下问题?

时间:2013-12-23 12:15:23

标签: asp.net-mvc-4 razor

我在Razor中有以下代码,为什么它不起作用? 我想做的就是检查数据是否有值,如果是,则将其打印到2位小数并附加%符号。

<td> 
    @if (data.HasValue == true)
    {

        @string.Format("{0:F2}", data)%

    }
</td>

它说我在字符串的开头不需要am @。我把它关掉了,然后就抱怨了;

但我通过以下方式开始工作

@if (data.HasValue == true)
{
    <td>           
        @string.Format("{0:F2}", data)%
    </td>
}
else
{
    <td>

   </td>

}

如何修复第一组代码?

由于

3 个答案:

答案 0 :(得分:0)

试试这个工作..

<td> 
    @if (data.HasValue == true)
    {

      string.Format("{0:F2} {1}", data, "%");

    }
</td>

或者你可以试试这个

<td> 
        @if (data.HasValue == true)
        {

          @:@String.Format("{0:F2}", data)%;

        }
    </td>

答案 1 :(得分:0)

Razor不知道你想用string.Format调用你想做什么。

要解决此问题,请使用:

<td> 
    @if (data.HasValue == true)
    {

        @:@string.Format("{0:F2}", data)%

    }
</td>

答案 2 :(得分:0)

这保证可行,试一试:

<td> 
    @{
       if (data.HasValue)// you don't need to compare to true because it's already a boolean :)
       {    
            string.Format("{0:F2}", data)%    
       }
     }
</td>