Ссылка на идентификатор элемента управления, созданный с помощью TextBoxFor () - PullRequest
7 голосов
/ 24 марта 2010

Я люблю ASP.NET MVC, не отстать от выпусков / документов иногда бывает сложно, поэтому, может быть, я просто не получаю что-то ... Я хочу использовать TextBoxFor () и работа с LabelFor () и т. д. в порядке, все волшебство происходит со мной.

Но если я создам ...

 <%=Html.TextBoxFor(x => x.LastName) %>

И хотел бы сделать что-нибудь приятное с jQuery, как бы я получил идентификатор созданного элемента управления? Я мог бы добавить класс CSS и использовать его для присоединения моего jQuery, но для чего-то, что я делаю, мне нужен идентификатор ... чтобы я мог сделать что-то вроде:

 $('#LastName').(...)

Я знаю, что я мог бы решить это в этом случае и взломать это вручную, но есть ли более аккуратный способ?

Ответы [ 4 ]

12 голосов
/ 24 марта 2010

Я думаю, вы можете сделать что-то вроде:

<%=Html.TextBoxFor(x => x.LastName, new { id = "LastName" })%>

Перегрузки TextBoxFor

7 голосов
/ 06 февраля 2014

Начиная с MVC4, есть встроенный способ сделать это - @Html.IdFor () .

Вот пример его использования:

@Html.IdFor(m => m.Filters.Occurred.From)

и результат как

Filters_Occurred_From
0 голосов
/ 28 января 2014

По умолчанию ваш контрольный идентификатор является значением привязки вашей модели. Вы также можете просто использовать firebug. выберите элемент управления и получите по умолчанию идентификатор элемента управления.

0 голосов
/ 16 сентября 2011

Интересно, что код Html.Textbox () будет генерировать идентификатор, дублирующий имя элемента управления для всего, что начинается с буквы (a-z). Однако, если ваше «имя» начинается с цифры, оно просто не будет беспокоить.

Это фантастическая «особенность», которая заставляет меня горевать в течение последнего часа или около того.

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