2016-03-28 2 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()); 
    } 
} 

Я хотел основанное на значении Saldo, что означает баланс, получить красную, когда баланс < 0 и зеленый, когда> 0 я судимый использовать viewBag, чтобы установить цвет, основанный на результат баланса, а затем установите его там, где вызывается функция, но он не работает, если кто-то может дать мне тип, который я ценю :)Изменения рядных цветов с viewBag

ответ

0

Вы устанавливаете атрибут цвета до присвоения значения ViewBag. Попробуйте написать свой <h3> тег после @functions, как показано ниже:

@functions { 
// your content 
} 

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

что Didnt работал: / –

0

решена мною так:

@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> 
Смежные вопросы