Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou montando um projeto usando MVC3, e preciso colocar uma validação na minha view, dentro de um loop. Sei que o ideal é retirar o máximo possível de lógica da View, mas não encontro outra maneira de fazer o que preciso.
Vou demonstrar:
Tenho o seguinte loop:
<div class="col-sm-8">
@For Each pedido As CorrenteDeOracoes.Pedido In Model
@<div class="col-sm-12 pedido">
<span class="PedidoOracao">@pedido.descricao</span>
<span class="Apelido">@pedido.apelido</span>
<br />
@code
If Then
@<button onclick="estouOrando('@pedido.id.ToString')" class="btn btn-primary btn-xs">Estou Orando</button>
End If
@If pedido.qtdOrando > 0 Then
@<span>@pedido.qtdOrando Estão orando por isso</span>
Else
@<span>Seja o primeiro a orar por esse pedido</span>
End If
End code
</div>
Next
</div>
Nesse "if" que está sem nada, preciso fazer uma validação, essa validação precisa ser uma função que retornará boolean.
Encontrei por aí somente maneiras de fazer função de extensões, mas não é o que preciso. Alguém sabe como faço? Achei que seria possível declrar uma variável como sendo do tipo HomeController, mas HomeController não é um tipo disponível.
Obrigado.
Valeu, mas no model vai ser complicado. Acho que o mais perto disso que eu conseguiria chegar é montar uma ViewBag, mas ainda sim não seria simples, por a condição para o botão aparecer ou não é atualizada via ajax... por isso a função realmente precisava ser chamada na view.
Eu consegui resolver, mas não da forma que gostaria. Fiz a função na própria View, assim:
@functions
Function mostraBotao(id As Guid) As Boolean
'minha lógica
Return False
End Function
End Functions
Resolveu o problema, mas eu queria ter dado preferência para fazer essa função fora da View...
De qualquer forma, brigadão!
Eu já traria isso preenchido no Model, por que não cria uma coluna no seu Model que trará isso já tratado? Ai na view vai ser apenas uma coluna a mais.
Abraços...