2012-04-25 26 views
0

我有一个看起来像这样的观点的列表:ModelBinding可编辑的整数

@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

前一段时间我有同样的问题,这是我的解决方案(解决方法吗?)

您可以使用此代码在视图中产生形式:

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

而在你的控制器定义行动List<int> number参数

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

我从来没有试图找出为什么简单的解决办法呢不起作用,但我想,该模型联编程序需要一些属性名称才能使用。

+0

感谢卢卡斯..这是有道理的。 – 2012-04-25 15:44:58