2010-11-22 72 views
5

剃须刀很简单,知道你想要做什么很棒。我只想从查询格式化变量,并且有点困惑。一切都很好,除了一行if字符串isnull语句。编译器失败,表示它期望分号;。下面的代码:如何格式化内联剃须刀变量

@foreach(var row in db.Query(selectQueryString)){ 
<tr> 
     <td>@row.ACCT &nbsp &nbsp</td> 
     <td>@row.QuoteStart &nbsp &nbsp</td> 
     <td>@row.VIN &nbsp &nbsp </td> 
     <td>@{ if (String.IsNullOrEmpty(row.AmountFinanced) == true) 
       { &nbsp } else 
       {String.Format("{0:0,0.00}",row.AmountFinanced) &nbsp &nbsp } 
      } </td> 
     <td>@row.Step &nbsp &nbsp </td> 


</tr> 
} 

回答

10

您需要在<text></text>块来包装你&nbsp;秒。这会强制解析器跳回到html中,因为当您处于{}块中时,解析器将假定&nbsp;应该是代码。

@foreach(var row in db.Query(selectQueryString)){ 
<tr> 
     <td>@row.ACCT &nbsp &nbsp;</td> 
     <td>@row.QuoteStart &nbsp; &nbsp;</td> 
     <td>@row.VIN &nbsp; &nbsp; </td> 
     <td>@{ if (String.IsNullOrEmpty(row.AmountFinanced) == true) 
       { <text>&nbsp;</text> } else 
       { @String.Format("{0:0,0.00}",row.AmountFinanced) <text>&nbsp; &nbsp;</text> } 
      } </td> 
     <td>@row.Step &nbsp; &nbsp; </td> 
</tr> 
} 
+0

感谢您对代码的解释和更正。我认为你需要一个@之前的String.Format。下面是我使用的最终代码(我必须将字符串转换为数字才能添加数千个指标):{@ String.Format(“{0:0,0.00}”,Convert.ToDouble(row.AmountFinanced ))}} 如果您编辑您的答案,我会将其标记为已接受。再次感谢。 – Knox 2010-11-22 22:50:26