gpt4 book ai didi

c# - 更复杂(现实生活)的模型绑定(bind)?

转载 作者:行者123 更新时间:2023-11-30 16:36:28 26 4
gpt4 key购买 nike

跟着我一起想象下面的例子:

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

我之前尝试过正确的模型绑定(bind),但我无法让它正常工作。所有示例都向您展示了它如何处理一种极其简单的类型,而不是多种复杂类型。 modelbinder 如何知道什么字段是什么类型的?如果有 fruit1 和 fruit2 怎么办? Binder 如何知道我的 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="" />

喜欢 this question .

关于c# - 更复杂(现实生活)的模型绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/798127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com