我使用jQuery AJAX post请求将客户端JS数组传递给服务器端VB.NET代码。我有一种方法可行,但我想知道最佳做法。我一开始是这样的:使用jQuery AJAX将JS数组传递给VB.Net post
JS:
var myArray=["Apple","Banana"];
$.ajax({url:"myhandler.ashx",
data:{"myArray":myArray.toString()}, type: "POST"});
VB:
Dim myArray as String()
= HttpContext.Request.Form("myArray").Split(New [Char]() {","c})
在JS,myArray.toString()我的数组转换为逗号分隔字符串 “苹果,香蕉”,然后在VB中,Split将它转换回一个字符串数组。
然后我发现ajax会自动为您序列化数组。所以,我可以离开的ToString()关:
$.ajax({url:"myhandler.ashx", data:{"myArray":myArray}, type: "POST"});
当我这样做,在VB身边,我发现HttpContext.Request.Form不再有钥匙“myArray的”它现在被称为“myArray的[ ]“,你看,它是一个逗号分隔的字符串:”Apple,Banana“。
这里是我的问题:
1)是否有一个内置的方式在VB.NET反序列化的逗号分隔字符串转换回一个字符串数组?
2)我的数组的Ajax序列化只是调用toString(),并且如果反序列化函数存在,它只是像我一样调用Split()?
3)使用内建的序列化/反序列化除了标准之外是否有任何优势?我可以想到一个缺点。我不喜欢它通过添加方括号来重新命名我的密钥。