所以我有两个嵌套的视图模型,CreditCard-> BillAddress。
我有一个视图“ EditBilling”,它具有EditorFor(CreditCard)。 CreditCard编辑器模板具有EditorFor(BillAddress),而BillAddress编辑器模板具有EditorFor(BillState)。
最终结果是一个ID为“ CreditCard_BillAddress_BillState”的选择列表。
我需要在javascript中引用它,因此需要知道ID。在其他情况下,对于非嵌套ViewModel,我使用了以下代码:
$('#<%= ViewData.ModelMetadata.PropertyName %>_BillState')
这里的问题是ModelMetadata.PropertyName属性仅知道当前属性,而不是父项。因此,我得出以下结论:
$('#BillAddress_BillState')
如何获得嵌套的强类型助手的客户端ID?提前致谢。
最佳答案
我相信通过查看TemplateHelpers的源代码已经找到了解决方案。似乎ViewData.TemplateInfo.HtmlFieldPrefix产生完整的“名称”(基本上以“。”作为分隔符,而不是“ _”)。