让我们假设我们有这样的模型和视图:
public class Test
{
public List<string> data { get; set; }
}
<form asp-action="View">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input name="data[0]" value="dsa" />
<input name="data[1]" value="asd" />
<div class="form-group">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</form>
[HttpPost]
public IActionResult View(Test input)
{
return View();
}
我正在将此表格发送给控制器的方法,他正确地看到了那些数据元素。
但是如果我将索引更改为:
<input name="data[0]" value="dsa" />
<input name="data[2]" value="asd" />
然后它将无法正常工作。我知道以这种方式有意义,但是是否可以禁用索引检查,而只是将所有这些值插入具有正确索引的列表/数组中?
因此,在第二种情况下,data[0]
将是data[0]
,而data[1]
将是data[2]
。
只需为索引中的每个“间隙”移动下一个objs即可消除该间隙。
答案 0 :(得分:1)
您只能使用:
<input name="data[]" value="dsa" />
<input name="data[]" value="asd" />
但是,如果您完全指定索引,则它必须是有序的。