更复杂的(真实)modelbinding?
-
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);
}
我试过适当modelbinding较早,但我不能让它正常工作。所有的例子告诉你如何用一个非常简单的工作类型,从来没有与多个复杂的类型。该模型绑定器如何知道是什么领域什么类型的?如果有什么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="" />
不隶属于 StackOverflow