我在帖子上找到了,这正是我想要的:将IEnumerable发布到我的控制器。
这是另一篇文章:
Foreach on IEnumerable property and CheckBoxFor in ASP.Net MVC
我尝试了非常接近的事情:
http://www.vbforums.com/showthread.php?t=652925
但是当我提交表单时,控制器上的模型为null。
我使用Html.BeginCollectionItem()在ASP NET MVC 2上找到了一个解决方案,但看起来他们在版本3上删除了这个帮助器。(http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/)。
答案 0 :(得分:1)
只需使用字符串[]
即可<form action="url">
<input type="text" name="data" />
<input type="text" name="data" />
<input type="text" name="data" />
<input type="text" name="data" />
<input type="text" name="data" />
</form>
public ActionResult Url(string[] data){
}
这对我的项目个人有用。虽然我没有在复杂的类型上尝试过,但是请试一试)
答案 1 :(得分:0)
我认为我们不能使用Interface或Abstract类作为Action Methods的参数,因为MVC Engine无法创建模型的实例。 但是,我认为自定义模型绑定器可以做到这一点。 检查如何为IEnumerable创建一个自定义绑定器,它与此类似:
http://davidhayden.com/blog/dave/archive/2008/09/08/CustomModelBinderMoreUIValidationASPNETMVC.aspx