Una volta capito che la corrispondenza iniziale per il pulsante di opzione vuole corrispondere solo a una stringa e desidera impostare il valore su una stringa, si tratta semplicemente di convertire il valore iniziale in stringa.Ho dovuto combattere questo con i valori Int.
Dopo aver impostato i tuoi osservabili, converti il valore in stringa e KO farà la sua magia da lì. Se stai mappando con singole linee, esegui la conversione in quelle linee.
Nel codice di esempio, sto usando Json per mappare l'intero modello in un singolo comando. Quindi lasciando che Razor inserisca il valore tra le virgolette per la conversione.
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>
Uso "Scarica tutto sullo schermo" nella parte inferiore della mia pagina web durante lo sviluppo.
<h4>Debug</h4>
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
Ecco i valori dei dati, Prima
"OrderStatusID": 6,
"ManifestEntered": true,
e, dopo
"OrderStatusID": "6",
"ManifestEntered": "True",
Nel mio progetto, non avevo bisogno di convertire Bools, perché sono in grado di utilizzare una casella di controllo che non ha la stessa frustrazione.