Knockout js, la liste déroulante mvc par défaut ne sélectionne pas

cela semble si simple mais je suis incapable de le faire.

J’ai limité une liste déroulante avec les données Json de c #.

Voir page

Appel json

Knockout Model

 var baseModel = { VehicleTypeId: null, VehicleTypes: [], } var viewModel = ko.mapping.fromJS(baseModel); $.get(urlPath + "/GetVehicleTypes", function (data) { viewModel.VehicleTypes(data); }); 

Il remplit la liste déroulante et lorsque je sélectionne une valeur dans la liste déroulante, la valeur est mise à jour pour VehicleTypeId.

Mon problème est que je veux définir une valeur par défaut pour ma liste déroulante, je l’ai googlé mais rien ne fonctionne pour moi

Les données que je reçois dans Json sont les suivantes.

 [{ "ID": 32, "Name": "Vehicle 1" }, { "ID": 30, "Name": "Vehicle 2" }, { "ID": 31, "Name": "Vehicle 3" }] 

Vos VehicleTypes doivent figurer dans un tableau observable et assurez-vous de bien appliquer vos liaisons:

 var baseModel = { // data VehicleTypeId: ko.observable(null), VehicleTypes: ko.observableArray([{ "ID": 32, "Name": "Vehicle 1" }, { "ID": 30, "Name": "Vehicle 2" }, { "ID": 31, "Name": "Vehicle 3" }]), } ko.applyBindings(baseModel); 

Vous devrez atsortingbuer une valeur à VehicleTypeId afin que la valeur par défaut soit définie.

Voici un exemple de travail.

 function VehicleTypesViewModel(){ var self = this; self.VehicleTypeId = null; self.VehicleTypes = []; } var viewModel = new VehicleTypesViewModel(); $.get(urlPath + "/GetVehicleTypes", function (data) { viewModel.VehicleTypeId = 32; viewModel.VehicleTypes = data; ko.applyBindings(viewModel); });