더 복잡한 (실제) 모델 결합?
-
18-09-2019 - |
문제
나와 함께 롤하고 다음 예를 상상해보십시오.
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);
}
나는 일찍 적절한 모델 결합을 시도했지만 제대로 작동 할 수 없었습니다. 모든 예제는 여러 가지 복잡한 유형의 매우 간단한 유형으로 작동하는 방법을 보여줍니다. Modelbinder는 어떤 유형의 필드인지 어떻게 알 수 있습니까? 과일과 과일이 있다면 어떻게해야합니까? 바인더는 IFRIUT 인터페이스에 어떤 콘크리트 유형을 사용할 것인지 어떻게 알 수 있습니까? 더욱이 나는 내 사람에게 ienumerable 과일을주고 싶다면 어떻게 작동하는지 궁금합니다.
해결책
나는 그것이 다음과 같이 가야한다고 믿는다 :
<input type="text" name="person.Name" value="" />
<input type="text" name="person.Age" value="" />
<input type="text" name="fruit.Property1" value="" />
<input type="text" name="fruit.Property2" value="" />
컬렉션 :
<input type="text" name="fruit[0].Property1" value="" />
<input type="text" name="fruit[0].Property2" value="" />
<input type="text" name="fruit[1].Property1" value="" />
<input type="text" name="fruit[1].Property2" value="" />
in처럼 이 질문.
제휴하지 않습니다 StackOverflow