Як тільки ви з’ясуєте, що початковий збіг для перемикача хоче відповідати лише рядку і хоче встановити значення в рядок, це просто питання перетворення вашого початкового значення в рядок. Мені довелося боротися з цим цінностями Int.
Після того, як ви налаштували свої спостережувані, перетворіть значення в рядок, і KO зробить свою магію звідти. Якщо ви зіставляєте окремі рядки, виконайте перетворення в цих рядках.
У прикладі коду я використовую Json, щоб зіставити всю модель однією командою. Потім дозволяючи Razor вставляти значення між котируваннями для перетворення.
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>
Під час розробки я використовую "Скинути все на екран" внизу своєї веб-сторінки.
<h4>Debug</h4>
<pre data-bind="text: ko.toJSON($data, null, 2)"></pre>
Ось значення даних, раніше
"OrderStatusID": 6,
"ManifestEntered": true,
і, після
"OrderStatusID": "6",
"ManifestEntered": "True",
У моєму проекті мені не потрібно було перетворювати Bools, оскільки я можу використовувати прапорець, який не має такого ж розчарування.