如何将大字符串数组返回到jquery

时间:2014-01-03 07:51:42

标签: jquery asp.net arrays

我对我在asp.net中的C#代码后面定义的web方法进行了jquery / ajax调用。

我正在尝试返回一个包含2000个项目的字符串数组。

我收到一个未定义的错误。

如果数组小于400,则可以正常工作。

所以问题是我如何将大数组返回到jquery调用。

我从我的网络方法返回:

string[]

我可以返回的数组中的项目数量是否有限制,或者我必须以某种方式将其解析为json接受的内容?

此游戏的新功能非常值得欣赏。

//客户端

jQuery(function ($) {
    $.ajax({
        type: "POST",
        url: "Feed.aspx/PlayClips",
        data: JSON.stringify({
            ClipValue: lstMotionClips.options[lstMotionClips.selectedIndex].value,
            SessionID: sessionID,
            alias: alias
        }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {

            $.each(msg.d, function () {
                if (this['Text'] == "ERROR") {
                    alert(this['Value']);
                }
                else {

                    arrayresult = msg.d;
                    totalFrames = arrayresult.length;
                    PlayBack();
                }
            });    
        },
        error: function (msg) {
            alert(msg.d);}
    })
});

//服务器端

[WebMethod]
public static string[] PlayClips(string ClipValue, string SessionID, string alias)
{
    string[] frames = null;
    try
    {       
        string[] parentDirectory = Directory.GetDirectories(parentPath, guid, SearchOption.AllDirectories);
        if (parentDirectory.Length > 0)
        {
             frames = Directory.GetFiles(parentDirectory[0], "*.jpg", SearchOption.TopDirectoryOnly);
        }
    }
    catch (Exception _ex)
    {
        dalStatic.AddError("PlayClips." + _ex.ToString());
    }
    return frames;
}

由于

NB 我在错误开始时检查了字符串的总长度。

看起来长达14188的字符串就可以了。一旦我超越,我就会收到错误。因此,已达到阈值。我已将MaxStringContent设置为非常高的数字,但仍然会收到错误。

1 个答案:

答案 0 :(得分:2)

Json有限制在这里看到 - > http://msdn.microsoft.com/en-us/library/system.web.configuration.scriptingjsonserializationsection.maxjsonlength.aspx

同样改变web.config somthing

 <configuration>
... 
<system.web.extensions>
    <scripting>
        <webServices>
            <jsonSerialization maxJsonLength="XXXXXX" />
        </webServices>
    </scripting>
</system.web.extensions>
...