How to model bind to a List?

2019-02-19 09:04发布

I'm trying to accomplish something like this. I feel like it's possible, and if not probably an oversight in the MVC framework?

View:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<List<MyViewModel>>" %>
...
<% foreach (MyViewModel vm in Model) {
    Html.RenderPartial("MyViewModelPartial", vm);
} %>

The partial view being an editable form, strongly typed to a single MyViewModel, and use the DataAnnotations on the MyViewModel class to validate

Controller:

public ActionResult FooController(List<MyViewModel> vml)
{ 
   ...
}

Is this possible? This seems like the most logical way to build grid/table structures in MVC(with each partial view being a table row) but I can't seem to get it to work and I end up using FormCollection in my controller to loop through the whole dang form, and it's just messy.