Une fois que vous avez compris que la correspondance initiale pour le bouton radio ne veut correspondre qu'à une chaîne et que vous souhaitez définir la valeur sur une chaîne, il s'agit simplement de convertir votre valeur initiale en chaîne. J'ai dû lutter contre cela avec les valeurs d'Int.
Après avoir configuré vos observables, convertissez la valeur en chaîne et KO fera sa magie à partir de là. Si vous mappez avec des lignes individuelles, effectuez la conversion dans ces lignes.
Dans l'exemple de code, j'utilise Json pour mapper l'ensemble du modèle en une seule commande. Laissez ensuite Razor insérer la valeur entre les guillemets pour la conversion.
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>
J'utilise un "Dump it all to the screen" en bas de ma page Web pendant le développement.
<h4>Debug</h4>
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
Voici les valeurs des données, avant
"OrderStatusID": 6,
"ManifestEntered": true,
et, après
"OrderStatusID": "6",
"ManifestEntered": "True",
Dans mon projet, je n'ai pas eu besoin de convertir des Bools, car je suis capable d'utiliser une case à cocher qui n'a pas la même frustration.