我的观点如下:
@model List<int>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@using (Html.BeginForm())
{
<ul>
@{int counter = 0;}
@foreach (var i in Model)
{
<li>@Html.TextBoxFor(m => m[counter])</li>
counter++;
}
</ul>
}
我的问题是生成的html看起来像这样......
<li><input name="[0]" type="text" value="1" /></li>
etc.. etc...
当我回发到控制器时,表单名称不会绑定到我的控制器。关于如何解决它的任何想法(前缀或可能是什么?)
答案 0 :(得分:1)
前段时间我遇到了同样的问题,这是我的解决方案(解决方法?)
您可以在视图中使用此代码生成表单:
@Html.TextBox("number[" + counter + "]", i)
在您的控制器中使用List<int> number
参数
public ActionResult Index(List<int> number) { ... }
我从未试图找出为什么简单的解决方案不起作用,但我想,该模型绑定器需要一些属性名称才能使用。