Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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
C# Json数据返回空值_C#_Javascript_Jquery_Ajax - Fatal编程技术网

C# Json数据返回空值

C# Json数据返回空值,c#,javascript,jquery,ajax,C#,Javascript,Jquery,Ajax,晚上好,伙计们!我有一个奇怪的 长话短说,我正在从java脚本客户端发送一篇帖子,以从我的C#控制器获取一个整数,但是response.data返回空值。扭曲之处在于,C#方法和javascript/jquery函数都是从另一个项目中复制和粘贴的,它们都在另一个项目中工作。它们来自的项目是VS2010项目,它们被粘贴到VS2012项目中。我不确定这是否是一个问题,但它可能是相关的。在C#中正确获取整数,并且不缺少任何信息。更神秘的是,成功消息正确地返回到响应对象客户端。但是response.da

晚上好,伙计们!我有一个奇怪的

长话短说,我正在从java脚本客户端发送一篇帖子,以从我的C#控制器获取一个整数,但是response.data返回空值。扭曲之处在于,C#方法和javascript/jquery函数都是从另一个项目中复制和粘贴的,它们都在另一个项目中工作。它们来自的项目是VS2010项目,它们被粘贴到VS2012项目中。我不确定这是否是一个问题,但它可能是相关的。在C#中正确获取整数,并且不缺少任何信息。更神秘的是,成功消息正确地返回到响应对象客户端。但是response.data对象为null,并引发异常

非常感谢您的任何帮助。谢谢

这是C#中的方法:

这是javascript/jquery函数:

    function getMaxFileSize() {
        $.post(settings.actions.getMaxFileSize, function (response) {

            var maxFileSize = 0;

            // Assign the correct size to the hidden field.
            if (response.success) {
                maxFileSize = response.data.maxFileSize;
                $(settings.selectors.maxFileSizeHiddenInput).val(maxFileSize);
            }
            // Assign 0 to max file size: user cannot upload files.
            else {
                $(settings.selectors.maxFileSizeHiddenInput).val(maxFileSize);
            }
        });
    }
在这里工作很好

TestController.cs

    public class AjaxResponse
    {
            public AjaxResponse(bool success, object data)
            {
                this.success = success;
                this.data = data;
            }
            public bool success { get; set; }

            public object data { get; set; }
    }

    [HttpPost]
    public ActionResult Ajax()
    {
        return Json(new AjaxResponse(true, new { num = 5 }));
    }
Index.cshtml

    $.post('@Url.Action("Ajax", "Test")', function (response) {

        var num = 0;
        debugger;
        // Assign the correct size to the hidden field.
        if (response.success) {
            num = response.data.num;
            $('h2').html(num);
        }
            // Assign 0 to max file size: user cannot upload files.
        else {
            $('h2').html(num);
        }
    });
FireBug中的JSON响应:

    {"success":true,"data":{"num":5}}

嗨,谢伊。您的答案中的AjaxResponse类的结构给了我一个关于它是什么的线索:我的应用程序中的AjaxResponse类(不是由我构建的)没有正确分配数据(没有使用“this”,并且传入的参数与对象属性的名称和大小写相同,Data=Data)。本质上,这总是保持数据为空。谢谢你的帮助!
    {"success":true,"data":{"num":5}}