ASP.Net MVC 3 Razorビューエンジンを使用しています。MVC 3レイザービュー:ブールモデル値からJavaScriptを生成
ビューモデルの値に基づいてビュー内にJavaScriptコードを生成する必要があります。使用する必要がある値はブール値です。この例ではIsSet
とします。
私がしたいことは、後でスクリプトで使用できるこの値に基づいてJavaScriptブール値を作成することです。
@{ string IsSet = Model.IsSet ? "true" : "false"; }
...例以下のすべてのために、私は私のビューの上部にあるコードのこのビットを持っていることに留意してください。注:以下のすべての例では、JavaScriptです。
最初の試み ...
var IsSet = @(IsSet);
が...これは実際に動作する、問題は、それが原因不正な形式にVS 2010で自動書式設定(CTRL + E、D)を壊していますJavaScript - あなたが予想しているように、これは受け入れられません。
第二の試み ...
var IsSet = "@(IsSet)";
...私は知っている、JavaScriptは必要なときに、それは私の文字列を自動解析する、賢いです。 Ooopsは文字列型であることを忘れてしまい、空以外のものは真であると評価します。
第三の試み ...
var IsSet = Boolean("@(IsSet)");
が....確かに、これは動作します...いや、再びtrueに(悪いパーサを!)、空でない文字列を変換
四最後に ...
var IsSet = "@(IsSet)" === "true";
働く何かをしようとするが、それは私には見栄えしません。
私が必要とする場合はこれを使用しますが、最終的には私の質問です。このような状況を処理するにはよりよい方法がありますか?おそらく、私の最初の試みでの望ましくない動作は、Microsoftが見落としているかもしれないものですか?
誰かが私のためにすてきできちんとした5番目の試行を持っているなら、それは良いでしょう。
私にとって重要なことは、VS 2010でのオートフォーマットは
おかげ
についてどのように
私は最初の試みに同意する必要があります - それはあなたがストリングしていないし、最初にブール値であったものをキャストしていないので、私にとって最も自然なように見えます!私はRazor/JSコード全体でこのテクニックを多用していますが、うまくいくようですが、自動フォーマットには何の問題もありませんでしたが、私はReSharperを使って自動的に修正します! –
私はReSharperを使用していますが、私はまだ自動フォーマットの問題にぶつかります。そのため、フォーマット上の問題が発生していないのはわかりません。自動フォーマットと大文字の問題は、HTMLタグ名やJSコード(主にcamelCase、特に自動インデントが行われたときにフォーマッタが起動する)など、小文字のネーミングが適用される場所にPascal-cased Razor変数を配置すると発生しますあなたは別のシナリオを持っていたかもしれませんが、私はあなたが別のシナリオを持っていたかもしれないと思いますか? –