Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 将JSON数据中的两个或多个图像传递给MVC控制器不起作用_Javascript_Ajax_Model View Controller - Fatal编程技术网

Javascript 将JSON数据中的两个或多个图像传递给MVC控制器不起作用

Javascript 将JSON数据中的两个或多个图像传递给MVC控制器不起作用,javascript,ajax,model-view-controller,Javascript,Ajax,Model View Controller,我有一个asp.net mvc web应用程序,它有一个带有一些文本数据标题、说明(例如)和一些图像的表单。由于在将图像发送到服务器之前要调整图像大小,因此我有一个javascript函数来调整图像大小,将所有数据放入一个对象中,并通过ajax调用将其作为JSON发送到服务器 这就是模型: public class ItemCU { public int pid { get; set; } public string pcat { get; set; } public s

我有一个asp.net mvc web应用程序,它有一个带有一些文本数据标题、说明(例如)和一些图像的表单。由于在将图像发送到服务器之前要调整图像大小,因此我有一个javascript函数来调整图像大小,将所有数据放入一个对象中,并通过ajax调用将其作为JSON发送到服务器

这就是模型:

public class ItemCU
{
    public int pid { get; set; }
    public string pcat { get; set; }
    public string ptitle { get; set; }
    public string pdescription { get; set; }
    public double pprice { get; set; }
    public int pcount { get; set; }
    public int psort { get; set; }
    public string[] pimgOrder { get; set; }
    public string[] pimgNum { get; set; }
    public string[] pimgData { get; set; }
    public List<SelectListItem> pcategories { get; set; }
}
这是javascript函数:

    function saveData() {

        var imgNum = [], imgData = [];
        for (var i = 0; i < newOrder.length; i++) {
            if (newOrder[i] > 999999) {
                imgNum.push(newOrder[i]);
                var resimg = resizeImage($("img[data-id='" + newOrder[i] + "'").attr('src'));
                imgData.push(resimg);
            }
        }

        var itmData = {
            pid: $("#id").val(),
            ptitle: $("#title").val(),
            pcat: $("#cat").val(),
            pdescription: $("#description").val(),
            pcount: $("#count").val(),
            pprice: $("#price").val(),
            psort: $("#sort").val(),
            pimgOrder: newOrder,
            pimgNum : imgNum,
            pimgData : imgData
        }

        $.ajax(
            {
                url: '@Url.Action("ItemEdit", "Admin")',
                type: 'POST',
                contentType: 'application/json',
                data: JSON.stringify({ piData: itmData }),
                success: function (delres) {
                    window.location.href = delres.redirectUrl;
                },
                error: function (delres) {
                    window.location.href = delres.redirectUrl;
                    }
                }
            }
        )
    }
我在回调部分缩短了ajax调用

当我只选择并发送一个图像时,一切正常,但当我想发送多个图像时,一切都不正常。看起来数据不是由ajax发送的,而是直接通过错误回调继续发送

我做了一个浏览器调试会话的屏幕截图,在这里你可以看到数组pimgdata包含两个图像,所以到目前为止一切都还不错

每当我尝试谷歌我发现的例子,只是发送图像没有其他数据或数据和一个图像

我现在的问题是,如果我的电话出了问题,可能是因为我把它串起来了,或者它没有按照我想要的方式工作

如果能得到一些提示/提示/建议,我将不胜感激。即使是一些我可以在谷歌上搜索的关键词也会很有帮助

提前感谢,, 提姆 我希望这个问题有所有需要的信息

更新:

根据Robby Cornelissen的建议,我发现maxJsonLength似乎存在一个简单的问题。不幸的是,当我用谷歌搜索它时,我通常会找到从服务器向客户端发送数据的答案——反之亦然。正如我已经读到的,不需要编辑webconfig,因为它只用于webservices,而不用于MVC控制器

我读到我可以改为JSON.serialize,但我认为问题还是一样的

老实说,我不明白这是否是向服务器发送数据和/或在服务器端接收数据的问题

有没有关于我可以用谷歌搜索的提示? 谢谢, 提姆

更新2/“解决方案” 经过长时间的搜索,我找到了两页帮助我找到了一个最终有效的“解决方案”。不知道是否有更好的方法,但是

我发现的第一部分是: 他们创建了一个自定义的JsonValueProviderFactory,并用Global.asax中的此工厂替换了默认工厂

此外,我还将maxRequestLength和maxAllowedContentLength添加到我的web.config中,正如我在

也许有更好的解决办法,但对我来说,它奏效了

非常感谢,
Tim

[…]数据不是通过ajax发送的,而是通过错误回调直接继续[…]不仅仅是客户端问题,这看起来像是服务器抛出了错误。你检查了服务器的响应了吗?你能不能包括将绑定到mvc ItemEdit操作中的ViewModel/模型?@LukeVillanueva我将模型添加到问题中。很抱歉没有直接这么做。@RobbyCornelissen:非常感谢你的建议。现在我知道了真正的问题,并更新了我的问题,因为我没有找到答案。为什么不在动作控制器内移动调整大小?而不是在脚本上做。