2010-11-22 8 views
5

Razor hace un buen trabajo al saber lo que quiere hacer cuando es simple. Solo quiero formatear una variable de una consulta y estoy un poco confundido. Todo funciona muy bien, excepto la línea con la instrucción if string isnull. El compilador falla en la línea con el {& nbsp} diciendo que espera un punto y coma;. Aquí está el código:Cómo formatear las variables de afeitado en línea

@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> 
} 

Respuesta

10

Es necesario para envolver sus &nbsp; s en un bloque <text></text>. Esto obliga al analizador a escapar de nuevo a html porque cuando estás en un bloque {}, el analizador supondrá que se supone que el &nbsp; es código.

@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

Gracias por la explicación y la corrección en el código. Creo que necesitas un @ before the String.Format. Este es el código final que utilicé (tuve que convertir una cadena en un número para poder agregar el indicador de miles): {@ String.Format ("{0: 0,0.00}", Convert.ToDouble (row.AmountFinanced))) & nbsp & nbsp}} Si edita su respuesta, la marcaré como aceptada. Gracias de nuevo. – Knox

+0

Tiene razón sobre el @ porque lo va a enviar a la pantalla. Estaba más preocupado por el ' ' Actualizado. Gracias :) – Buildstarted

Cuestiones relacionadas