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。