我的背景主要是 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 做同样的事情,只是简单地用全名属性索引所有内容,而不考虑数组索引。
谢谢你的帮助!