ModelBinding可编辑整数列表

时间:2012-04-25 14:00:47

标签: asp.net-mvc model-binding

我的观点如下:

@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...

当我回发到控制器时,表单名称不会绑定到我的控制器。关于如何解决它的任何想法(前缀或可能是什么?)

1 个答案:

答案 0 :(得分:1)

前段时间我遇到了同样的问题,这是我的解决方案(解决方法?)

您可以在视图中使用此代码生成表单:

@Html.TextBox("number[" + counter + "]", i)

在您的控制器中使用List<int> number参数

定义操作
public ActionResult Index(List<int> number) { ... }

我从未试图找出为什么简单的解决方案不起作用,但我想,该模型绑定器需要一些属性名称才能使用。