0
這是mvc EF和淘汰賽中的車隊管理應用程序,其中有車輛,駕駛員和司機旅行的特定路線。將嵌套式挖空視圖模型傳遞給控制器
我有一種情況,我想從我的視圖模型中嵌套的三個模型中收集字段值到單個對象中,並通過ajax將其發佈到我的後端。我希望通過點擊一個按鈕來觸發它。
有一個問題是我的populateFleetInformation
函數。當我從各種模型中收集字段值時,一些可觀察值正在丟失其值並顯示爲空。
試圖使AJAX調用
function FleetViewModel() {
var vvm = this;
vvm.regNumber = ko.observable(0);
vvm.make = ko.observable("");
vvm.model = ko.observable("");
vvm.RouteDetail = new RouteViewModel();
vvm.SaveFleetInfo = function(item){
if (!pageViewModel.isAuthenticated()) return;
populateFleetInformation(item);
$.when(postSecureData("/api/Fleet/", ko.toJSON(pageViewModel.FleetViewModel.RouteViewModel.RouteDriverViewModel)))
.done(function() {
document.getElementById("save-Fleet-btn").innerHTML = "Saving...";
setTimeout(function() { document.getElementById("save-fleet-btn").innerHTML = "Save" }, 2500);
$.msgGrowl({
type: 'info',
title: 'Fleet Information',
text: 'fleet information succesfully saved',
position: 'bottom-right',
lifetime: 3000
});
})
}
}
函數收集數據
function PopulateFleetInformation(item)
{
pageViewModel.fleetVM.regNumber(item.regNumber);
pageViewModel.fleetVM.make(item.make);
pageViewModel.fleetVM.model.(item.model);
pageViewModel.fleetVM.routeDetail.routeID(item.routeId);
pageViewModel.fleetVM.routeDetail.routeName(item.routeName);
pageViewModel.fleetVM.routeDriver.nationalId(item.nationalId);
pageViewModel.fleetVM.individualMsisdn.licenseId(item.licenseId);
pageViewModel.fleetVM.individualMsisdn.driverName(item.driverName);
}
觸發按鈕視圖模型
<button type="submit" id="save-fleet-btn" class="btn"data-bind="click: $root.fleetVM.sensorDetail.SaveFleetInfo"></button>
在哪裏你期待'PopulateFleetInformation'中的'item'來自UI,還是來自Ajax調用的結果? –
@Anish Patel從用戶界面,然後我想將這些值(項目)傳遞給控制器,這就是爲什麼填充方法在post方法之前 – anchor
ajax調用在哪裏,它是'postSecureData'? ajax調用返回什麼? –