C# Jquery$.post在while循环中

C# Jquery$.post在while循环中,c#,javascript,jquery,ajax,razor,C#,Javascript,Jquery,Ajax,Razor,这是我的代码: @ { HttpCookie cookiePortrait = Request.Cookies["PhotoPortraitCookie"]; int pPortraitKeysCount = (cookiePortrait.Values.Keys.Count); } <script> $(function () { var specArr = new Array(); @ { int n = 0;

这是我的代码:

@ {
    HttpCookie cookiePortrait = Request.Cookies["PhotoPortraitCookie"];
    int pPortraitKeysCount = (cookiePortrait.Values.Keys.Count);
}

<script> 
    $(function () {
    var specArr = new Array();
    @ {
        int n = 0;
        while (n < pPortraitKeysCount) {
            string str = cookiePortrait.Values.GetKey(n).ToString();

            @: var dataSS = {}@: dataSS = {@: decode: '@str',
                @: '__RequestVerificationToken': $('[name="__RequestVerificationToken"]').val()@:
            }@: $.post('/photo/Decode', dataSS, function (dataR) {@: specArr.push(dataR);@:
            });@: specArr.push('@HttpUtility.UrlDecode(GeneralCookie.Values.GetValues(n).GetValue(0).ToString())')
            @: n++;
        }
    })
</script>
它试图获取一个cookie并用cookie值填充一个数组,因为它使用瑞典语和编码值,所以我们必须将其发送到服务器进行解码,并且razor解码它在Html中不起作用


我的问题是,我的帖子工作不正常,它不是在while过程中进行迭代,而是在while迭代之后逐个while计数进行迭代。

生成页面后,您是否也可以发布一个Javascript示例?当JS代码变得不可读时,使用Razor注入生成大量JS代码通常是一个非常糟糕的主意。最好在页面顶部插入一个值数组,并编写更清晰的jQuery代码来处理该数组。由于cookie值在服务器端可用,我不知道现在为什么需要任何客户端jQuery/JS。