Asp.net mvc 4 如何使用razor解决以下问题?

Asp.net mvc 4 如何使用razor解决以下问题?,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,我在Razor中有以下代码,为什么它不工作? 我所要做的就是检查数据是否有值,如果有,则将其打印到小数点后2位,并附加一个%符号 <td> @if (data.HasValue == true) { @string.Format("{0:F2}", data)% } </td> @if(data.HasValue==true) { @字符串格式(“{0:F2}”,数据)% } 它说我不需要在字符串的开头使用am@。我把它

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

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

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

    }
</td>

@if(data.HasValue==true)
{
@字符串格式(“{0:F2}”,数据)%
}
它说我不需要在字符串的开头使用am@。我把它摘下来,然后它抱怨一声

但我是通过以下步骤来实现的

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

   </td>

}
@if(data.HasValue==true)
{
@字符串格式(“{0:F2}”,数据)%
}
其他的
{
}
如何修复第一组代码以使其正常工作


谢谢

试试这个,它很管用

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

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

    }
</td>

@if(data.HasValue==true)
{
格式(“{0:F2}{1}”,数据“%”);
}
或者你可以试试这个

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

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

        }
    </td>

@if(data.HasValue==true)
{
@:@String.Format(“{0:F2}”,数据)%;
}

Razor不知道您想对string.Format调用执行什么操作

要解决此问题,请使用:

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

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

    }
</td>

@if(data.HasValue==true)
{
@:@string.Format(“{0:F2}”,数据)%
}

这保证会起作用,请尝试一下:

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

@{
if(data.HasValue)//不需要与true进行比较,因为它已经是布尔值:)
{    
字符串格式(“{0:F2}”,数据)%
}
}