更复杂(真实的)模型绑定?

滚动我,想象下面的例子:

Public ViewResult GiveMeFruit(int personId, string personName, int personAge, int fruitId){ Person person = PersonService.GetPerson(personId); person.Name = personName; person.Age = age; person.Fruits.Add(FruitService.GetFruit(fruitId)); ViewData.Person = person; View(ViewData); } 

这应该做得更好

 Public ViewResult GiveMeFruit(Person person, IFruit fruit){ person.Fruits.Add(fruit); ViewData.Person = person; View(ViewData); } 

我之前尝试过合适的模型绑定但是我无法正常工作。 所有示例都向您展示了如何使用一个非常简单的类型,从不使用多个复杂类型。 模型绑定器如何知道哪种类型的字段是什么? 如果有水果1和水果2怎么办? 活页夹如何知道我的IFruit界面使用哪种具体类型? 此外,我想知道如果我想给我的人提供一个IEnumerable水果它会如何工作。

我相信它应该是这样的:

     

对于collections:

     

喜欢这个问题 。