2009-04-28 100 views
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); 
} 

我想正確的modelbinding更早更好,但我不能讓它正常工作。所有示例都向您展示了它是如何用一種非常簡單的類型工作的,從來沒有多種複雜的類型。模型綁定器如何知道什麼類型的字段?如果有水果1和水果2呢?活頁夾如何知道用於我的IFruit界面的具體類型?另外我想知道如果我想給我的人一個IEnumerable結果,它將如何工作。

+0

讓我們不要去camelot這是一個愚蠢的地方。這只是一個模型.. – 2009-04-28 14:07:14

回答

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

this question

+0

IList 怎麼樣? – 2009-04-28 14:41:17