Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的mvc控制器没有在post上从淘汰客户端获取我的所有值_Javascript_Asp.net Mvc_Knockout.js_Repository Pattern_Single Page Application - Fatal编程技术网

Javascript 为什么我的mvc控制器没有在post上从淘汰客户端获取我的所有值

Javascript 为什么我的mvc控制器没有在post上从淘汰客户端获取我的所有值,javascript,asp.net-mvc,knockout.js,repository-pattern,single-page-application,Javascript,Asp.net Mvc,Knockout.js,Repository Pattern,Single Page Application,我正在使用knockout,我在post方法上设置了一个断点,它正确地捕获了我的所有观察值,但是当数据传递到控制器时 服务器端(单击保存按钮后)只有两个my值从服务器端传入。因此,我在控制器上设置了一个断点,它似乎提取了驱动程序名称和维护周期,其余的值都是零 保养周期是指汽车应在30天、60天、90天等时间内进行保养。。。。。。这就是我从knockout NB发布到控制器的方式注意,我的masterViewModel是我的index.js,我没有尝试发布make和模型,只是我只需要saveInf

我正在使用knockout,我在post方法上设置了一个断点,它正确地捕获了我的所有观察值,但是当数据传递到控制器时 服务器端(单击保存按钮后)只有两个my值从服务器端传入。因此,我在控制器上设置了一个断点,它似乎提取了驱动程序名称和维护周期,其余的值都是零 保养周期是指汽车应在30天、60天、90天等时间内进行保养。。。。。。这就是我从knockout NB发布到控制器的方式注意,我的masterViewModel是我的index.js,我没有尝试发布make和模型,只是我只需要saveInfo方法中的值

function driverVM() {
    var drv = this;

    drv.driverId = ko.observable(0);
    drv.driverName = ko.observable("");
    drv.currentServicePeriods= ko.observable([]);
    drv.pastServicePeriods =ko.observable([]);


}
function  vehicleVM{
    vvm.regNumber = ko.observable(0);
    vvm.make = ko.observable("");
    vvm.model = ko.observable("");
    vvm.DriverDetail = new  DriverVM();




vvm.saveVehiclDriverInformation = function () {
        if (!masterViewModel.isAuthenticated()) return;

        vvm.DriverDetail;
        vvm.SaveInfo = $.map(masterViewModel.vehicleVM.driverVM., function (item) {

            return masterViewModel.vehicleVM.driverVM.driverID, masterViewModel.vehicleVM.driverVM.driverName, $("#vehicleID").val(), $("#modelType").val(), masterViewModel.vehicleVM.driverVM.currentServicePeriods, masterViewModel.vehicleVM.driverVM.pastServicePeriods
        });


        $.when(postSecureData("/api/vehicleInfo/", ko.toJSON(vehicleVM.driverVM.SaveInfo)))
          .done(function () {
              document.getElementById("save-vehicleINfo-btn").innerHTML = "Saving...";
              setTimeout(function () { document.getElementById("save-vehicleInfo-btn").innerHTML = "Save" }, 2500);
              $.msgGrowl({
                  type: 'info',
                  title: 'vehicle information',
                  text: 'vehicle details succesfully saved',
                  position: 'bottom-right',
                  lifetime: 3000
              });

          })
    };
这里发生的事情很少。 在我看来,
ko.toJSON(vehicleVM.driverVM.SaveInfo)
SaveInfo
不需要定义。SaveInfo更适合作为普通包装函数来生成对象,如下所示:

vvm.saveVehiclDriverInformation = function () {
    if (!masterViewModel.isAuthenticated()) return;

    function prepareInfo(){
        return {
            driverID: masterViewModel.vehicleVM.driverVM.driverID(),
            driverName: masterViewModel.vehicleVM.driverVM.driverName(), 
            vehicleID: $("#vehicleID").val(), 
            modelType: $("#modelType").val(), 
            currentServicePeriods: masterViewModel.vehicleVM.driverVM.currentServicePeriods(), 
            pastServicePeriods: masterViewModel.vehicleVM.driverVM.pastServicePeriods()
        }
    };



    $.when(postSecureData("/api/vehicleInfo/", prepareInfo()))
      .done(function () {
          document.getElementById("save-vehicleINfo-btn").innerHTML = "Saving...";
          setTimeout(function () { document.getElementById("save-vehicleInfo-btn").innerHTML = "Save" }, 2500);
          $.msgGrowl({
              type: 'info',
              title: 'vehicle information',
              text: 'vehicle details succesfully saved',
              position: 'bottom-right',
              lifetime: 3000
          });

      })
};

在整个代码中,生成前导句点和尾随句点时会出现很多错误。您是否有一个精简的小提琴再现了这个问题?@dperry目前没有小提琴,但如果您能指出生成前导和尾随句点的错误,我需要调整,这将是非常好的“始终”可能有点夸张,但有两个:SaveInfo映射调用,$。当行,我以为还有一个,但似乎找不到it@dperry$。如果工作正常,可能是您所说的saveInfo应该替换为另一种类型的调用,但不确定是哪种类型。但是,此
ko.toJSON(.vehicleVM.driverVM.saveInfo)
不应该工作,vehicleVM前面的引导周期将中断Thuff@dperry在尝试了你的方法之后,我得到了[object object],[object object object],[object object object],[object object],[object object object],[object object object],[object object object],抱歉,它们需要评估,一分钟哦,有一些看似不必要的事情正在进行,您的方法似乎接近正确,因为它指示对象的匹配数量,但它们似乎是空的,不知何故“对象对象”???我忘了再评估一次,一秒钟