マッピングが正しく機能していないようです:
@{ var jsonData = new HtmlString(new JavaScriptSerializer().Serialize(Model)); }
var initialData = @jsonData;
---> その段階で、initialData には JSON 形式の正しいデータが含まれています
var viewModel;
ko.mapping.fromJS(initialData, viewModel);
---> ここでは、viewModel にすべてのプロパティが含まれています。Chrome デバッガーで、viewModel.Products (配列プロパティ) と入力すると、適切にマップされているように見えます。
ただし、viewModel.Products[0] を実行すると、「未定義」が返されます。配列には実際には 4 つの項目が含まれているため、これは奇妙です (jSon データで確認できます)。
何か不足していますか?