Pergunta

A Razor faz um ótimo trabalho ao saber o que você quer fazer quando for simples. Eu só quero formatar uma variável de uma consulta e estou um pouco confuso. Tudo funciona muito bem, exceto a única linha com a instrução if string isnull nela. O compilador falha na linha com o {} dizendo que espera um semicolon ;. Aqui está o 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) 
                 { &nbsp } else 
                 {String.Format("{0:0,0.00}",row.AmountFinanced) &nbsp &nbsp }
            } </td>
       <td>@row.Step &nbsp &nbsp </td>


</tr> 
} 
Foi útil?

Solução

Você precisa embrulhar seu &nbsp;s em a <text></text> quadra. Isso força o analisador a escapar de volta ao HTML porque quando você está em um {} Bloquear o analisador assumirá que o &nbsp; deve ser o 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> 
} 
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top