MVC 3 Rasoir Vue: Génération de JavaScript à partir d'un modèle booléen valeur

Je suis en utilisant ASP.Net MVC 3 Rasoir moteur d'affichage.

J'ai une obligation de générer du code JavaScript dans mon point de Vue basé sur une valeur dans mon Modèle de Vue. La valeur que j'ai besoin d'un booléen, pour cet exemple permet de l'appeler IsSet.

Donc ce que je veux faire est de créer un JavaScript booléen basé sur cette valeur que je peux utiliser dans le script plus tard.

Garder à l'esprit que, pour tous les exemples ci-dessous, j'ai ce bout de code en haut de mon point de vue...

@{ string IsSet = Model.IsSet  ? "true" : "false"; }

NOTE: Tous les exemples ci-dessous sont JavaScript.

Première tentative...

var IsSet = @(IsSet);

... cela fonctionne, le problème, c'est qu'elle casse l'auto-mise en forme (CTRL + E, D) dans VS 2010 en raison d'une mauvaise mise en forme JavaScript - comme vous vous en doutez, et ce n'est pas acceptable.

Deuxième tentative...

var IsSet = "@(IsSet)";

...Je sais, JavaScript est intelligent, il s'auto-analyser ma chaîne si nécessaire. Ooops, j'ai oublié c'est un type de chaîne et de rien d'autre que le vide est évaluée à true.

Troisième tentative...

var IsSet = Boolean("@(IsSet)");

....certes, cela fonctionne... nan, convertir une chaîne non vide de vrai nouveau (mauvais analyseur!)

Quatrième tentative...

var IsSet = "@(IsSet)" === "true";

Enfin quelque chose qui fonctionne, mais il n'a pas l'air très bien pour moi.

Je vais utiliser cette si nécessaire, mais en fin de compte, ma question est: Est-il une meilleure façon de gérer ce genre de situation? Peut-être, le comportement indésirable dans ma première tentative est juste quelque chose que Microsoft peut être négligé?

Si quelqu'un a une jolie et soignée cinquième tentative pour moi, ce serait bien.

L'important pour moi est que l'auto-mise en forme dans VS 2010 ne prend pas en pause

Grâce

  • J'aimerais être d'accord avec votre première tentative - qui ressemble le plus naturel pour moi, que vous n'êtes pas stringifying et puis quelque chose de casting, qui était déjà un Booléen en premier lieu! J'ai utilisé cette technique beaucoup tout au long de mon Rasoir / code JS et il semble fonctionner très bien, et je n'ai pas vu de problèmes avec l'auto-mise en forme, mais je ne l'utilisation de ReSharper alors peut-être qu'il corrige automatiquement!
  • J'utilise ReSharper et je continue de courir dans l'auto-problème de mise en forme, donc je ne suis pas sûr que c'est pourquoi vous n'êtes pas frapper problèmes de mise en forme. L'auto-mise en forme et la capitalisation problème se produit lorsque vous avez Pascal-tubé Rasoir variables apparaissant dans les endroits où le formateur de mettre en minuscule appellation, tels que les noms de balises HTML ou du code JS (principalement camelCase; en particulier, le module de formatage des coups de pied dans quand l'auto-indentation se produit...Donc Chris, j'ai un pressentiment que vous pourriez avoir eu un autre scénario?
InformationsquelleAutor musefan | 2011-12-19