أكثر تعقيدا (الحياة الواقعية) الموديلات؟
-
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);
}
جربت الموديلات المناسبة في وقت سابق لكنني لم أستطع الحصول عليها للعمل بشكل صحيح. تظهر لك جميع الأمثلة كيف تعمل مع نوع واحد بسيط للغاية، أبدا مع أنواع متعددة ومعقدة. كيف يعرف الموردين الحقل ما هو نوع؟ ماذا لو كان هناك 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