まず、このコードは機能しますが、私が取り除きたいと思うほどの煩わしさはありません。カミソリ構文を使用して作成された .cshtml ページがあります。ページ上の多くのものがバインドされている舞台裏には、大きくて厄介なノックアウト オブジェクトが存在します。現在、そのノックアウト モデルをインスタンス化するときは、問題の C# ビューモデル オブジェクトを以下のような文字列リテラル内でシリアル化することによって行っています。
<script type="text/javascript">
$(document).ready(function() {
var data = @Html.Raw(Json.Encode(Model));
var contentListingModel = new ContentListingModel(data);
ko.applyBindings(contentListingModel, $('#pageRoot').get(0));
});
</script>
私が言ったように、コードは機能します。ただし、@Html.Raw 呼び出しの行で、警告が表示されます。Visual Studio は、そこに構文エラーがあると認識しています (レンダリングされた後ではありません)。さて、構文の問題があると信じている理由は完全に理にかなっています。しかし、この問題を引き起こさない方法でコーディングすることで警告を取り除きたいと思っています (警告を非表示にするか、他の多くのことを実行できることを認識しています)。 C# オブジェクトを JSON にシリアル化し、それらをページ上の JavaScript に詰め込んでいます。何か案は?
コードは完全に機能し、一見きれいに見えるので、これについて尋ねるのは衒学的でささいなことであることを完全に受け入れますが、それは私を悩ませます。