【问题标题】:Passing data from ajax to mvc controller - null parameter error将数据从 ajax 传递到 mvc 控制器 - 空参数错误
【发布时间】:2015-03-30 05:07:15
【问题描述】:

我在客户端收到 jquery ajax 请求,在服务器端收到 asp mvc。 我将此发送到服务器 但我没有得到温度范围 有人知道为什么吗?

ajax 代码:

$.ajax({
            type: 'POST',
            async: false,
            url: "/PVTMethods/StandartModelResult",
            data: JSON.stringify(dataForSend),           
            async: true,
            success: function(data) {
                //TODO Реализовать обработку результата
            },
            error: function(data) {
                console.log("Error" + data);
            },
            dataType: "json",
            contentType: "application/json; charset=utf-8",
        });

服务器上的模型:

 public class DefaultRanges {
        public virtual double Start { get; set; } //начало отрезка
        public virtual double End { get; set; } //конец отрезка
        public virtual double Samples { get; set; } //шаги
    }

public class TemperatureDefaultRanges:DefaultRanges {}
public struct InputDataModel
    {
        /// <summary> решаемая задача </summary>
        public Tasks task;
        /// <summary>  данные по давлению </summary>
        public PressureDefaultRanges pressureRanges;
        /// <summary>  данные по температуре </summary>
        public TemperatureDefaultRanges temperatureRanges;
        ////в pvt настройки по ctrl+H - ranges для отдельно взятого графика
       /// <summary>  данные по температуре </summary>
        public PlotRanges currentTaskPlotRanges;
        public double plotConstant; //либо GOR либо Pressure (зависит от задачи)

    }

【问题讨论】:

  • 什么 JSON.stringify(dataForSend) 打印?
  • 将您的字段更改为属性(添加 getter 和 setter),以便 DefaultModelBinder 可以设置它们。
  • @user1428716 "{"method":"eStanding","model":{"task":"ePb","temperatureRanges":{"Start":200,"End":1000,"Samples":30}},"constants":{"ProducedGOR":500,"OilGravity":35,"SeparatorGasGravity":0.7,"StockTankOilGravity":0.84956,"WaterSalinity":20}}"
  • @StephenMuecke 你成就了我的一天
  • @StephenMuecke 请回复

标签: jquery asp.net ajax asp.net-mvc asp.net-mvc-4


【解决方案1】:

您需要通过添加{ get; set; } 来使InputDataModel 属性中的字段,以便DefaultModelBinder 可以设置属性的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-14
    • 2015-04-03
    • 2021-12-05
    • 2020-08-09
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    相关资源
    最近更新 更多