3

私と一緒にロールして、次の例を想像してください。

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 の果物を与えたい場合、どのように機能するのだろうか。

4

1 に答える 1

3

私はそれが次のようになるべきだと信じています:

<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="" />

この質問のように。

于 2009-04-28T14:17:48.687 に答える