В прошлом году мы перенесли все наши новые функции в ASP.NET MVC.
Однако у нас все еще есть множество устаревших страниц WebForms с большим количеством кода JavaScript, и у нас не будет возможности обновить их в ближайшее время.
Совсем недавно мы также перешли на ASP.NET 4, и это, похоже, сломало загрузку кода JavaScript на этих старых страницах.
Где раньше идентификатор клиента был бы:
ctl001_masterControlName_panelControlName_controlWeWant
Теперь они стали:
ctl001_masterControlName_panelControlName_controlWeWant_0
Откуда взялся этот суффикс _0
? В panelControlName
есть только один controlWeWant
, поэтому суффикс не добавляет значения.
Я знаю, что жестко закодированные идентификаторы клиентов - плохая идея для WebForms; одной из причин, по которой мы перешли на ASP.NET MVC, был ужасный HTML, созданный WebForms. Однако для этого унаследованного кода мы застряли с ним, и я бы не стал его менять (пока не настанет день, когда у нас будет свободное время, чтобы сделать это правильно).
Почему ASP.NET 4 вообще добавляет суффикс _0
?
Можно ли его отключить?
Есть ли другой способ избежать этого?