0

我有一个看起来像这样的视图:

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

当我回发到控制器时,表单名称不会绑定到我的控制器。关于如何修复它的任何想法(可能是前缀或其他东西?)

4

1 回答 1

1

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

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

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

并在您的控制器中使用List<int> number参数定义操作

public ActionResult Index(List<int> number) { ... }

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

于 2012-04-25T14:37:06.627 回答