2016-03-28 7 views
1
@model MSDiary.Models.Saldo 
<h3>O seu saldo actual: <span style="color:@ViewBag.color">@obtemSaldo()</span></h3> 

@functions 
{ 
    HtmlString obtemSaldo() 
    { 
     decimal saldo = 0; 
     if (Model != null) 
     { 
      foreach (var item in Model.Despesas) 
      { 
       saldo -= item.DespesaValor; 
      } 
      foreach (var item in Model.Rendimentos) 
      { 
       saldo += item.RendimentoValor; 
      } 
      Model.valor = saldo; 
      if(saldo < 0) 
      { 
       ViewBag.color = "red"; 
      } 
      else 
      { 
       ViewBag.color = "green"; 
      } 
     } 
     return new HtmlString(saldo.ToString()); 
    } 
} 

Ich wollte basierend auf dem Wert des saldo die Balance bedeutet, die rote erhalten, wenn der Restbetrag ist < 0 und grün, wenn> 0 i die viewBag zu verwenden tryed um die Farbe einzustellen, basierend auf das Ergebnis der Balance und dann einrichten, wo die Funktion aufgerufen wird, aber es funktioniert nicht, wenn jemand mir einen Tipp geben kann, ich schätze :)Ändern Inline-Farb mit viewBag

Antwort

0

Sie setzen das Farbattribut, bevor Wert ViewBag zugewiesen wird. Versuchen Sie <h3> Tag nach @functions schreiben, wie unten:

@functions { 
// your content 
} 

<h3>O seu saldo actual: <span style="color:@ViewBag.color">@obtemSaldo()</span></h3> 
+0

, die gearbeitet didnt: / –

0

von mir auf diese Weise gelöst:

@model MSDiary.Models.Saldo 



@helper obtemSaldo() 
{ 
    decimal saldo = 0; 
    if (Model != null) 
    { 
     foreach (var item in Model.Despesas) 
     { 
      saldo -= item.DespesaValor; 
     } 
     foreach (var item in Model.Rendimentos) 
     { 
      saldo += item.RendimentoValor; 
     } 
     Model.valor = saldo; 
     if(saldo < 0) 
     { 
      ViewBag.color = "red"; 
     <p style="color:red">@saldo</p> 
} 
else 
{ 
    ViewBag.color = "green"; 
    <p style="color:green">@saldo</p> 
} 
} 

} 

<h3>O seu saldo actual: <span>@obtemSaldo()</span></h3> 
Verwandte Themen