2010-03-30 89 views
3

所以我有两个嵌套视图模型,CreditCard - > BillAddress。 我有一个视图“EditBilling”,它具有EditorFor(CreditCard)。 CreditCard EditorTemplate具有EditorFor(BillAddress),BillAddress EditorTemplate具有EditorFor(BillState)。如何在asp.net mvc 2中使用嵌套视图模型获取editorFor的ID

最终结果是ID为“CreditCard_BillAddress_BillState”的选择列表。

我需要在javascript中引用它,因此需要知道该ID。在其他情况下,与非嵌套的ViewModels,我用下面的代码:

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

这里的问题是,ModelMetadata.PropertyName属性只知道现在的财产,而不是父(或多个)。所以我最终得到以下结果:

$('#BillAddress_BillState') 

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

回答

5

我相信我通过查看TemplateHelpers的源代码找到了一个解决方案。看来,ViewData.TemplateInfo.HtmlFieldPrefix产生完整的“名称”(基本上以“。”作为分隔符而不是“_”)。

相关问题