문제

나와 함께 롤하고 다음 예를 상상해보십시오.

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처럼 이 질문.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top