我正在尝试将单选按钮的值绑定到List<int>
。我可以看到该值在Fiddler中提交,但在Visual Studio中,List<int> data
的值在MyAction中总是 null
查看
@using (Html.BeginForm("MyAction", "MyModel")) {
@foreach (SomeClass s in Model) {
for(x=1 ; x< 5; x++){
@Html.RadioButton("data[" + s.ID + "]", x)}
}
<input type="submit" value="submit" />
}
}
HTML
<input id="data_1_" name="data[1]" type="radio" value="1">
<input id="data_1_" name="data[1]" type="radio" value="2">
<input id="data_1_" name="data[1]" type="radio" value="3">
<input id="data_1_" name="data[1]" type="radio" value="4">
<input id="data_1_" name="data[1]" type="radio" value="5">
<input id="data_2_" name="data[2]" type="radio" value="1">
<input id="data_2_" name="data[2]" type="radio" value="2">
<input id="data_2_" name="data[2]" type="radio" value="3">
<input id="data_2_" name="data[2]" type="radio" value="4">
<input id="data_2_" name="data[2]" type="radio" value="5">
动作
[HttpPost]
public ActionResult MyAction(List<int> data) {
return View();
}
答案 0 :(得分:3)
关于发布对象集合的索引必须从零开始且不间断。
Here is blog,但我确信同样的规则适用于基元集合
在同一个博客中,对于原始人的收集,你根本不需要索引。只需对所有人使用相同的名称
这是你问题的答案,但根据你的代码,你有不同的问题:
只要您使用单选按钮,就根本不需要收集。给他们相同的名字,并在行动中接受原语:
HTML:
<input id="data_1_" name="data" type="radio" value="1">
<input id="data_2_" name="data" type="radio" value="2">
动作:
[HttpPost]
public ActionResult MyAction(int data) {
return View();
}