私と一緒にロールして、次の例を想像してください。
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 つの非常に単純な型でどのように機能するかを示しています。モデルバインダーは、どのフィールドがどのタイプのものであるかをどのように知るのでしょうか? 果物 1 と果物 2 がある場合はどうなるでしょうか。バインダーは、IFruit インターフェイスに使用する具象型をどのように認識しますか? さらに、自分の Person に IEnumerable の果物を与えたい場合、どのように機能するのだろうか。