我的背景主要是PHP,所以我习惯于能够非常容易地在窗体中使用深度数组。我需要的是下面的C#/ MVC equivelant:如何将未知深度/长度的数组发布到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做同样的事情,只需使用全名属性索引所有内容,而不考虑数组索引。
感谢您的帮助!
如果你不认为我们这些知道c#的人能够很好地回答,也可以站在你的PHP代码和引用(如“深度”)下,你可能会得到更多的回应。 。 – RBarryYoung
我不确定如何澄清。您访问数组的不同级别的方式对于大多数编程语言来说相当普遍。我相信你可以考虑一个类似于C#中的Dictionary的PHP数组。当我提到深度时,我只是指不同级别的字典(例如 - var [“level1”] [“level2”])。 –