Javascript 通过ajax传递数据-参数字典包含参数的空条目

Javascript 通过ajax传递数据-参数字典包含参数的空条目,javascript,c#,ajax,json,asp.net-mvc,Javascript,C#,Ajax,Json,Asp.net Mvc,我得到了我以前的问题,这是完全相同的。 之后,我们在界面和javascript中做了一些更改。所以,当我试图在服务器上传递数据时,我得到了这个错误 参数字典包含参数“方法”的空条目 方法的不可为Null的类型“API.PVT.Solver.Methods” 'System.Web.Mvc.ActionResult 标准模型结果(API.PVT.Solver.InputDataModel, API.PVT.Solver.Methods,API.PVT.Solver.DefaultConstant

我得到了我以前的问题,这是完全相同的。

之后,我们在界面和javascript中做了一些更改。所以,当我试图在服务器上传递数据时,我得到了这个错误

参数字典包含参数“方法”的空条目 方法的不可为Null的类型“API.PVT.Solver.Methods” 'System.Web.Mvc.ActionResult 标准模型结果(API.PVT.Solver.InputDataModel, API.PVT.Solver.Methods,API.PVT.Solver.DefaultConstants)中的 “WebServices.Controllers.PVT.pvtMethodController”。可选的 参数必须是引用类型、可为null的类型或声明为 可选参数

这是我的客户端请求

 GetServerData:function(inputData) {
        var outputData;
        $.ajax({
            type: 'POST',
            url: "/PVTMethods/StandartModelResult",
            data: JSON.stringify(inputData),
            success: function (data) {
                outputData = data.result;
                appl.PlotData = data.result;
            },
            error: function (data) {
                console.log("Error" + data);
            },
            dataType: "json",
            contentType: "appllication/json; charset=utf-8",
        });
        return outputData;

    }

以下是json的外观:

"{"method":"eMcCain","model":{"task":"eBw","temperatureRanges":{"Start":200,"End":1000,"Samples":30}},"constants":{"ProducedGOR":500,"OilGravity":35,"SeparatorGasGravity":0.7,"StockTankOilGravity":0.84985,"WaterSalinity":20}}"
以下是服务器端模型

  public class DefaultRanges
    {
        public virtual double Start { get; set; } //начало отрезка
        public virtual double End { get; set; } //конец отрезка
        public virtual double Samples { get; set; } //шаги
    }
    //константы
    public class DefaultConstants
    {
        public virtual double ProducedGOR { get; set; }
        public virtual double OilGravity { get; set; }
        public virtual double SeparatorGasGravity { get; set; }
        public virtual double StockTankOilGravity { get; set; }
        public virtual double WaterSalinity { get; set; }
    }

    //pressure rate (pisa)
    public class PressureDefaultRanges : DefaultRanges { }

    //temperature ranges (Фаренгейты если чо)
    public class TemperatureDefaultRanges : DefaultRanges { }

    public class PlotRanges : DefaultRanges
    {
        public virtual double PlotConstant { get; set; } //GOR или Pressure
    }
    // w\ pressure
    public class PlotRangesWP : PlotRanges
    {
        public virtual double Pressure { get; set; }
    }
    // w\ GOR
    public class PlotRangesWGOR : PlotRanges
    {
        public virtual double GOR { get; set; }
    }

    //решаемые задачи
    public enum Tasks { ePb, eRs, eBo, eBg, eMo, eMg, eMod, eBw, eMw, eRsw };
    //применяемые методы
    public enum Methods
    {
        eAbdulMajeed,//+
        eAlShammasi,//+
        eAlKhafaji,//+
        eAlMarhoun,//+
        eAlMarhounSA,//+
        eAlmehaideb,//+
        eAlNajjaretal,/
        eAziz,//+
        eBeal,//+
        eBeggsRobinson,//+
        eBeggsVazquez,//+
        eBergman,//+
        eDempsey,//+
        eDindorukChristman,//+
        eDoklaOsman,//+
        eElam,//+
        eElsharkawy,
        eFarshad,//+
        eGlaso,//+
        eHasan,//+
        eKartoatmodjoSchmidt,//+
        eKhairy,//+
        eKhanEtAl,//dead oil viscosity пока не нужен
        eLabediL,//+
        eLabediNA,//+
        eLasater,//+
        eLeeGonzales,//+
        eLevitanMurtha,//+
        eLucas,//+
        eMcCain,//+
        eMakary,//+
        eObomanuOkpobiri,
        eOmarTodd,//+
        eOwolabiCI,//+
        eOwolabiNS,//+
        ePetrosky,//+
        eSchlumbergerKuwait,//?  
        eStanding//+
    };




    public class InputDataModel
    {

        public Tasks task { get; set; }

        public PressureDefaultRanges pressureRanges { get; set; }

        public TemperatureDefaultRanges temperatureRanges { get; set; }

        public PlotRanges currentTaskPlotRanges { get; set; }
        public double plotConstant { get; set; } 
    }
下面是服务器端控制器方法

 public ActionResult StandartModelResult(InputDataModel model , Methods method, DefaultConstants constants = null)
        {
            SolverInit(constants);

            SetDeafultSettings(); //стандартные настройки методов
            //var method = Methods.eMcCain;
            PVTMethodsSolver.PVTSolverTaskMethodSettings(model.task, method);

            var currentResult = resultArray(model);

            return Json(new { result = currentResult, status = "ok"}, JsonRequestBehavior.AllowGet);

        }
这里怎么了?
现在连服务器都打不到,我是说请求。有什么可以帮忙的

像这样更改ajax代码,它就开始工作了

GetServerData:function(inputData) {
        var outputData;
        $.ajax({
            type: 'POST',
            async: false,
            url: "/PVTMethods/StandartModelResult",
            data: inputData,
           // async: true,
            success: function (data) {
                outputData = data.result;
                appl.PlotData = data.result;
            },
            error: function (data) {
                console.log("Error" + data);
            },
            dataType: "json",
          //  contentType: "appllication/json; charset=utf-8"
        });
        return outputData;

    }

如果有人遇到这个问题,请记住,这个答案是针对MVC控制器的;如果您使用的是WebAPI控制器,则此答案无效,