如何在asp.net mvc 2中使用嵌套的视图模型获取EditorFor的ID

Luk*_*uke 3 asp.net asp.net-mvc-2

所以我有两个嵌套的视图模型,CreditCard - > BillAddress.我有一个视图,"EditBilling",它有EditorFor(CreditCard).CreditCard EditorTemplate具有EditorFor(BillAddress),BillAddress EditorTemplate具有EditorFor(BillState).

最终结果是一个id为"CreditCard_BillAddress_BillState"的选择列表.

我需要在javascript中引用它,因此需要知道ID.在其他情况下,使用非嵌套的ViewModel,我使用了以下代码:

$('#<%= ViewData.ModelMetadata.PropertyName %>_BillState')
Run Code Online (Sandbox Code Playgroud)

这里的问题是ModelMetadata.PropertyName属性只知道当前属性,而不是父节点.所以我最终得到以下结果:

$('#BillAddress_BillState')
Run Code Online (Sandbox Code Playgroud)

如何获取嵌套的强类型助手的客户端ID?提前致谢.

Luk*_*uke 5

我相信通过浏览TemplateHelpers的源代码我找到了一个解决方案.似乎ViewData.TemplateInfo.HtmlFieldPrefix产生完整的"名称"(基本上用"."作为分隔符而不是"_").