私のバックグラウンドは主にPHPであるため、フォームでディープ配列を非常に簡単に使用できることに慣れています。私が必要としているのは、次のc#/MVC相当です。
<input type="text" name="data[0][index_name][0]">
<input type="text" name="data[0][index_name][1]">
<input type="text" name="data[1][index_name][0]">
<input type="text" name="data[1][index_name][1]">
<input type="text" name="data[2][index_name][0][something_else]">
<input type="text" name="data[2][index_name][0]">
<input type="text" name="data[2][index_name][1]">
これらは、phpでこの方法でアクセスできます...
$_POST['data'][0]['index_name'][0];
$_POST['data'][0]['index_name'][1];
$_POST['data'][1]['index_name'][0];
$_POST['data'][1]['index_name'][1];
$_POST['data'][2]['index_name'][0]['something_else'];
$_POST['data'][2]['index_name'][0];
$_POST['data'][2]['index_name'][1];
受け取ったformColletionオブジェクトを確認/ループしてみましたが、キーは「data [2] [index_name] [0] [something_else]」などの名前属性文字列であり、深さはありません。データ。
このデータを解析して、使用可能なデータ型を入力するにはどうすればよいですか?フロントエンドでフォームが動的に変化するため、配列の深さがわかりません。
したがって、ある程度のコンテキストがあります。これは、柔軟な数の行と列を持つデータの「テーブル」を構築するために使用され、各行は標準の行またはグループ化行(他の行を含むことを意味します)として扱うことができます。理論的には、データは非常に深くなる可能性があります。
ちなみに、クライアント側でデータをクリーンアップすることも考えましたが、これをサポートする標準はないようです。Jquery.serializeとJQuery.serializeArray()は、C#/ MVCと同じことを行い、配列インデックスを考慮せずに、フルネーム属性ですべてにインデックスを付けるだけです。
助けてくれてありがとう!