Estoy usando el motor de vista ASP.Net MVC 3 Razor.MVC 3 Razor View: generación de JavaScript a partir de un valor de modelo booleano
Tengo un requisito para generar código JavaScript en mi Vista en función de un valor en mi Modelo de Vista. El valor que necesito usar es booleano, para este ejemplo, llamemos al IsSet
.
Entonces, lo que quiero hacer es crear un booleano JavaScript basado en este valor que pueda usar en el script más adelante.
Tenga en cuenta que para todos los ejemplos a continuación tengo este trozo de código en la parte superior de mi vista ...
@{ string IsSet = Model.IsSet ? "true" : "false"; }
NOTA: Todos los ejemplos a continuación son JavaScript.
Primer intento ...
var IsSet = @(IsSet);
... esto realmente funciona, el problema es que rompe el auto-formateo (CTRL + E, D) en VS 2010 debido al mal formateados JavaScript, como era de esperar, y esto no es aceptable.
Segundo intento ...
var IsSet = "@(IsSet)";
... Lo sé, JavaScript es inteligente, que se auto-analizar mi cadena cuando sea necesario. Ooops, se olvidó de que es un tipo de cadena y todo lo que no sea vacío se evalúa como verdadero.
tercer intento ...
var IsSet = Boolean("@(IsSet)");
.... sin duda esto va a funcionar ... pues no, convertir cadena no vacía en true (mala analizador!)
Cuarto intentar ...
var IsSet = "@(IsSet)" === "true";
Finalmente algo que funciona, pero no se ve muy bien para mí.
Utilizaré esto si es necesario, pero en última instancia, mi pregunta es: ¿hay una mejor manera de manejar este tipo de situación? Quizás, el comportamiento no deseado en mi primer intento es algo que Microsoft puede haber pasado por alto?
Si alguien tiene un quinto intento bonito y ordenado para mí, sería bueno.
Lo importante para mí es que el formato automático en VS 2010 no se rompe
Gracias
Tendría que estar de acuerdo con tu primer intento, que parece ser el más natural para mí, ya que no estás codificando y luego lanzando algo que ya era booleano en primer lugar. Utilicé esa técnica mucho a lo largo de mi código Razor/JS y parece funcionar bien, y no he visto ningún problema con el formateo automático, pero sí uso ReSharper, ¡así que tal vez eso lo arregla automáticamente! –
Uso ReSharper y todavía me encuentro con el problema del formato automático, por lo que no estoy seguro de por qué no está abordando problemas de formato. El problema de auto-formateo y uso de mayúsculas ocurre cuando las variables Pascal-casted Razor aparecen en lugares donde el formateador aplica nombres minúsculos, como nombres de etiquetas HTML o código JS (predominantemente camelCase; en particular, el formateador se activa cuando la sangría automática) se produce ... Entonces, Chris, tengo la corazonada de que podría haber tenido un escenario diferente? –