2010-03-30 6 views
3

J'ai donc deux modèles de vue imbriqués, CreditCard -> BillAddress. J'ai une vue, "EditBilling", qui a EditorFor (CreditCard). Le CreditCard EditorTemplate a EditorFor (BillAddress), et le BillAddress EditorTemplate a EditorFor (BillState).Comment obtenir l'ID de EditorFor avec des modèles de vue imbriqués dans asp.net mvc 2

Le résultat final est une liste de sélection avec l'ID "CreditCard_BillAddress_BillState".

Je dois faire référence à ceci en javascript, j'ai donc besoin de connaître l'ID. Dans d'autres situations, avec ViewModels non imbriqués, je l'ai utilisé le code suivant:

$('#<%= ViewData.ModelMetadata.PropertyName %>_BillState') 

Le problème ici est que la propriété ModelMetadata.PropertyName ne connaît que la propriété actuelle, pas le parent (s). Donc, je me retrouve avec les éléments suivants:

$('#BillAddress_BillState') 

Comment peut-on s'y prendre pour obtenir l'ID client d'aides imbriquées fortement typé? Merci d'avance.

Répondre

5

Je crois que j'ai trouvé une solution en regardant à travers le code source des TemplateHelpers. Il semble que ViewData.TemplateInfo.HtmlFieldPrefix donne le nom complet (avec "." Comme séparateur au lieu de "_").

Questions connexes