始める前に、私のコードが適切に機能していることを明確にしたいと思います。これは「一般的なベスト プラクティス」の質問です。ASP.NET MVC2 モデルをノックアウトのビューモデルに読み込むために、ノックアウト.js を使用しています。
私のaspxページには次のものがあります:
<script>
var model = <%= new JavaScriptSerializer().serialize(Model) %>;
// the above line will display in my page's "View Source". Is this bad? slow?
</script>
次に、JavaScript インクルード ファイルの一番上に次のものがあります。
$(document).ready(function() {
var viewModel = new MyViewModel();
ko.applyBindings(viewModel);
viewModel.modelProp(model);
});
コードは完全に正常に動作しますが、これに関して私が懸念しているのは、JSON 出力が HTML 出力のブラウザーから「ソースの表示」オプションで表示できることです。私は2つのことに興味があります:
これは ASP.NET MVC3 でも発生しますか? ASP.NET MVC2 を使用しているため、 @Html.Raw(Json.Encode(Model)); を使用できません。-- しかし、MVC3 メソッドでも同じ問題が発生するのでしょうか?
これは私が心配すべきことですか?セキュリティの問題ですか?パフォーマンスの問題ですか?JSON を JavaScript 変数に出力しているため、ページのソースが大きくなりますね。繰り返しますが、MVC3 の問題ではないでしょうか?