質問

私と一緒にロールし、次の例を想像します:

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);
}

私は以前、適切modelbindingを試みたが、私はそれが正常に動作させることができませんでした。すべての例では、複数の複合型で、それは1つの非常に簡単なタイプでどのように機能するか、あなたを決して示しません。どのようにmodelbinderは、どのようなタイプのために何であるかのフィールドを知っているだろうか? fruit1とfruit2は何がある場合は?どのようにバインダーは、私のIFruitインタフェースのための具体的な種類を使用することを知っているだろうか? さらに、私は人への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="" />

>。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top