asp net mvc 3 post IEnumerable Model

时间:2011-09-20 03:22:35

标签: asp.net asp.net-mvc grid

我在帖子上找到了,这正是我想要的:将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/)。

2 个答案:

答案 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