【问题标题】:Something wrong with data parsing数据解析有问题
【发布时间】:2013-03-26 09:45:14
【问题描述】:

我在服务器上解析数据时遇到了一些问题。 这是我的 json 数据

ajax = (in_url,in_data,in_succes)->
    _url = in_url
    _data = in_data
    _success = in_succes
    #_error = in_error
    $.ajax
            type: "GET"
            url: _url
            data: _data
            dataType:"json"
            contentType:"json"
            success:_success
saveNewComplex:->
        data = ko.toJS model.complex
        ajax "/Complex/SaveNewComplex",data, () -> alert "Success"
        @getAllComplex()

还有我的服务器端代码

public ActionResult SaveNewComplex(string complexName, string complexDescript,  List<string> complexItems)
        {
            var temp = complexItems;
            return null;
        }

这是在所有数组成员奇怪的方括号之后带有查询参数的图片 - 也许这是主要问题?

服务器上的奇怪结果 - 全部为空。

【问题讨论】:

    标签: jquery asp.net-mvc knockout.js coffeescript


    【解决方案1】:

    如果我没记错的话,您尝试将array 发送到您的MVC controller。如果是这种情况,您应该首先在客户端对数组进行字符串化,然后将字符串发送到服务器,然后在服务器上反序列化字符串以获取数组,您应该执行以下操作:

    Js

    $.ajax({
    url: 'your url',
    type: 'POST',
    data: ko.toJSON(yourArray)
    });
    

    在服务器上

    public ActionResult SaveNewComplex(string yourArrayString)
    {
           var temp = Newtonsoft.Json.JsonConvert.DeserializeObject(yourArrayString);      
           //temp contains your array
    }
    

    【讨论】:

    • 你说得对,我正在尝试将数组发送到服务器,但数组是对象的一部分。你可以看到我在 saveNewComplex 方法中对我的对象进行了字符串化。我试过你的小费,但我有空错误。感谢您尝试帮助。
    • 在 saveNewComplex 方法中,您不是 stringify,您使用的是 ko.toJS,它实际上解开了所有 observables 并为您提供了一个干净的 JS 对象。要字符串化,您应该使用ko.toJSON
    • 哦,谢谢),但它不起作用=(......也许你在这段代码中看到了更多错误?当我将它字符串化时 - 就像在图像 2 上查询字符串是一个 5 个参数(名称、描述和数组部分)不是 1 个字符串(在你的例子中是 lilke)
    • 非常感谢)你就像一个巫师)我完全 - 你的建议的正确性问题是我的浏览器的现金)非常感谢。对不起,我还是不能为你加+,对不起。
    • @РоманИванов 你很高兴
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 2011-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多