Gdy już zorientujesz się, że początkowe dopasowanie przycisku radiowego chce dopasować tylko ciąg i chce ustawić wartość na ciąg, wystarczy przekonwertować wartość początkową na łańcuch. Musiałem z tym walczyć wartościami Int.
Po skonfigurowaniu swoich obserwabli, zamień wartość na łańcuch, a KO wykona swoją magię z tego miejsca. Jeśli mapujesz z pojedynczymi liniami, wykonaj konwersję w tych liniach.
W przykładowym kodzie używam Json do mapowania całego modelu w jednym poleceniu. Następnie pozwalając Razorowi wstawić wartość między cudzysłowami do konwersji.
script type="text/javascript">
KoSetup.ViewModel = ko.mapping.fromJS(@Html.Raw(Json.Encode(Model)));
KoSetup.ViewModel.ManifestEntered("@Model.ManifestEntered");
KoSetup.ViewModel.OrderStatusID("@Model.OrderStatusID");
</script>
Podczas programowania używam opcji „Zrzuć to wszystko na ekran” na dole mojej strony internetowej.
<h4>Debug</h4>
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
Oto wartości danych, przed
"OrderStatusID": 6,
"ManifestEntered": true,
i po
"OrderStatusID": "6",
"ManifestEntered": "True",
W moim projekcie nie musiałem konwertować Bools, ponieważ mogę użyć pola wyboru, które nie powoduje takiej samej frustracji.