Как получить ID EditorFor с вложенными моделями представления в asp.net mvc 2 - PullRequest
3 голосов
/ 30 марта 2010

Итак, у меня есть две модели вложенных представлений, CreditCard -> BillAddress. У меня есть представление «EditBilling», которое имеет EditorFor (CreditCard). У шаблона CreditCard EditorTemplate есть EditorFor (BillAddress), а у BillAddress EditorTemplate есть EditorFor (BillState).

Конечным результатом является список выбора с идентификатором "CreditCard_BillAddress_BillState".

Мне нужно сослаться на это в javascript, поэтому нужно знать идентификатор. В других ситуациях с не вложенными моделями представления я использовал следующий код:

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

Проблема здесь в том, что свойство ModelMetadata.PropertyName знает только о текущем свойстве, а не о его родителе. В итоге я получаю следующее:

$('#BillAddress_BillState')

Как можно получить идентификатор клиента для вложенных строго типизированных помощников? Заранее спасибо.

1 Ответ

5 голосов
/ 31 марта 2010

Я считаю, что нашел решение, просмотрев исходный код TemplateHelpers. Кажется, что ViewData.TemplateInfo.HtmlFieldPrefix выдает полное имя (в основном с «.» В качестве разделителя вместо «_»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...