1

jQuery AJAX postリクエストを使用して、クライアント側のJS配列をサーバー側のVB.NETコードに渡します。私にはうまくいく方法がありますが、ベストプラクティスについて疑問に思っています。私はこのように始めました:

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()が配列をコンマ区切りの文字列 "Apple、Banana"に変換し、VBではSplitが配列を文字列の配列に変換し直します。

次に、ajaxが自動的に配列をシリアル化することを知りました。したがって、.toString()をオフのままにしておくことができます。

$.ajax({url:"myhandler.ashx", data:{"myArray":myArray}, type: "POST"});

それを行ったとき、VB側では、HttpContext.Request.Formにキー「myArray」がないことがわかりました。これは「myArray []」と呼ばれ、見よ、これはコンマ区切りの文字列です。「Apple、バナナ"。

これが私の質問です:

1)コンマ区切りの文字列を文字列の配列に変換するVB.NETで逆シリアル化する組み込みの方法はありますか?

2)配列のAjaxシリアル化はtoString()を呼び出すだけですか?逆シリアル化関数が存在する場合は、私と同じようにSplit()を呼び出すだけですか?

3)標準であるだけでなく、組み込みのシリアル化/逆シリアル化を使用する利点はありますか?不利な点が考えられます。角かっこを追加してキーの名前を変更するのは好きではありません。

4

1 に答える 1

0

配列をJSONに変換します。

$.ajax({url:"myhandler.ashx", data:{"myArray":JSON.stringify(myArray)}, type: "POST"});

Json.NETを使用して.NETでJSON配列を逆シリアル化します

于 2012-10-03T17:16:36.230 に答える