从阿贾克斯将数据传递到MVC控制器 - 空参数错误 [英] Passing data from ajax to mvc controller - null parameter error

查看:145
本文介绍了从阿贾克斯将数据传递到MVC控制器 - 空参数错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在服务器端对客户端和ASP MVC的jQuery Ajax请求。 我把这个给服务器 但我没有得到temperatureRanges 难道有人知道为什么吗?

ajax- code:

  $。阿贾克斯({
            键入:POST,
            异步:假的,
            网址:/ PVTMethods / StandartModelResult
            数据:JSON.stringify(dataForSend)
            异步:真正的,
            成功:功能(数据){
                // TODOРеализоватьобработкурезультата
            },
            错误:功能(数据){
                的console.log(错误+数据);
            },
            数据类型:JSON,
            的contentType:应用/ JSON的;字符集= UTF-8,
        });
 

服务器型号:

 公共类DefaultRanges {
        公共虚拟双启动{获得;组; } //началоотрезка
        公共虚拟双端{获得;组; } //конецотрезка
        公共虚拟双样品{获得;组; } //шаги
    }

公共类TemperatureDefaultRanges:DefaultRanges {}
公共结构InputDataModel
    {
        ///<总结> решаемаязадача< /总结>
        公共任务的任务;
        ///<总结> данныеподавлению< /总结>
        公共pressureDefaultRanges pressureRanges;
        ///<总结> данныепотемпературе< /总结>
        公共TemperatureDefaultRanges temperatureRanges;
        ////вPVTнастройкипоCTRL + H  - 范围дляотдельновзятогографика
       ///<总结> данныепотемпературе< /总结>
        公共PlotRanges currentTaskPlotRanges;
        公共双plotConstant; //либоGORлибоpressure(зависитотзадачи)

    }
 

解决方案

您需要通过增加使 InputDataModel 属性的字段 {获得;组; } 这样的 DefaultModelBinder 设置的属性值。

I got jquery ajax request on client side and asp mvc on server side. I send this to the server But I didn't get temperatureRanges Do somebody know why?

ajax-code:

$.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",
        });

Model on server:

 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 (зависит от задачи)

    }

解决方案

You need to make the fields in InputDataModel properties by adding { get; set; } so the the DefaultModelBinder can set the value of the properties.

这篇关于从阿贾克斯将数据传递到MVC控制器 - 空参数错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆