Sobald Sie herausgefunden haben, dass die anfängliche Übereinstimmung für das Optionsfeld nur mit einer Zeichenfolge übereinstimmen und den Wert auf eine Zeichenfolge setzen möchte, müssen Sie lediglich Ihren Anfangswert in eine Zeichenfolge konvertieren. Ich musste dies mit Int-Werten bekämpfen.
Nachdem Sie Ihre Observablen eingerichtet haben, konvertieren Sie den Wert in einen String, und KO wird von dort aus seine Magie entfalten. Wenn Sie einzelne Zeilen zuordnen, führen Sie die Konvertierung in diesen Zeilen durch.
Im Beispielcode verwende ich Json, um das gesamte Modell in einem einzigen Befehl abzubilden. Lassen Sie dann Razor den Wert zwischen den Anführungszeichen für die Konvertierung einfügen.
script type="text/javascript">
KoSetup.ViewModel = ko.mapping.fromJS(@Html.Raw(Json.Encode(Model)));
KoSetup.ViewModel.ManifestEntered("@Model.ManifestEntered"); //Bool
KoSetup.ViewModel.OrderStatusID("@Model.OrderStatusID"); //Int
</script>
Ich verwende während der Entwicklung unten auf meiner Webseite ein "Alles auf den Bildschirm werfen".
<h4>Debug</h4>
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
Hier sind die Datenwerte, Vorher
"OrderStatusID": 6,
"ManifestEntered": true,
und danach
"OrderStatusID": "6",
"ManifestEntered": "True",
In meinem Projekt musste ich Bools nicht konvertieren, da ich ein Kontrollkästchen verwenden kann, das nicht die gleiche Frustration aufweist.