我使用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)使用內建的序列化/反序列化除了標準之外是否有任何優勢?我可以想到一個缺點。我不喜歡它通過添加方括號來重新命名我的密鑰。