2010-12-01 19 views
5

Lo siento por una pregunta de novato.MVC - pase ViewData como boolean

Al pasar el valor booleano del controlador a la vista usando ViewData, ¿cómo lo recupero como un valor booleano en javascript? ejemplo:

controlador:

ViewData["login"] = true; 

Ver

<script type="text/javascript"> 
var login = <%= (bool)ViewData["Login"] %>; /// this doesn't work, throw javascript error; 
</script> 

Yeh duda que pueda hacer

<script type="text/javascript"> 
var login = '<%= ViewData["Login"] %>'; /// now login is a string 'True' 
</script> 

pero preferiría mantener objeto registrado como una Boolean más bien una cadena si eso es posible

¡Gracias!

Respuesta

5

Simplemente elimine las comillas simples.

<script type="text/javascript"> 
    var login = <%= (bool)ViewData["Login"] ? "true" : "false" %>; 
</script> 

Esto dará como resultado:

var login = true; 

que será analizado como un valor lógico en el navegador.

+0

¡Tricky pero eso funciona! Gracias Jan ~ – BeCool

0

creo que podría hacer esto:

<script type="text/javascript"> 
    var login = new Boolean(<%= (bool)ViewData["Login"] ? "true" : "false" %>); 
</script> 

edición: en realidad el primer camino que tenía que no funcionaría. Los valores verdadero/falso pasados ​​a Boolean() deben ser minúsculas para que esto funcione.

Cuestiones relacionadas