2009-09-24 10 views
2

J'essaie de récupérer des données à partir d'un formulaire massif en utilisant Asp.net MVC. Son objet supérieur L1 contient des propriétés qui sont des collections d'autres types L2. Cependant, le type L2 contient des propriétés dont les collections de type L3, etc. Il y a probablement 5 niveaux de collections imbriquées.Asp.net MVC Liaison d'un objet avec des propriétés qui sont des collections d'objets qui ont également des propriétés de collection enfant

J'ai vu l'approche de la liaison aux listes dans Asp.Net MVC, où le nom de l'élément a une sous-chaîne de tableau incluse dans les noms de tous ses éléments html de propriété, par ex. [0] dans le premier ensemble, [1] dans le second ensemble, etc.

Cependant, lorsque nous avons des objets imbriqués, il va être assez difficile/cauchemardesque d'aller en ville [0] .council [0]. street [0] .Name et utilise cette convention pour nommer les éléments html.

Est-ce que quelqu'un est tombé sur cette situation/peut-il trouver une façon élégante de la résoudre?

Merci

Mickey

Répondre

0

Vous voudrez peut-être envisager d'utiliser LINQ abstraire le Nitty Gritty pour vous et vous permettent d'effectuer des jointures et ainsi de suite sur les listes.

1

Le classeur de modèle par défaut fourni avec ASP.NET MVC définit la convention de dénomination des éléments de formulaire à laquelle vous faites référence. S'il existe une autre convention que vous aimeriez utiliser pour nommer les éléments du formulaire, allez-y. Ensuite, il vous suffit d'écrire un classeur de modèle personnalisé qui peut peupler vos objets imbriqués en fonction de votre convention.

Il y a beaucoup de tutoriels là-bas pour créer classeurs modèles, voici quelques-uns:

http://www.singingeels.com/Articles/Model_Binders_in_ASPNET_MVC.aspx

http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/03/17/a-better-model-binder.aspx