ASP.NET 4 webforms clientid suffisso `_0`
-
26-09-2019 - |
Domanda
L'anno scorso abbiamo spostato tutta la nostra nuova funzionalità di ASP.NET MVC.
Tuttavia abbiamo ancora un carico di WebForms legacy pagine con un sacco di codice JavaScript, e non stiamo andando a ottenere la possibilità di aggiornarli in qualunque momento presto.
Più di recente abbiamo anche spostato ad ASP.NET 4, e che sembra aver rotto un carico di codice JavaScript in queste pagine precedenti.
Dove prima l'ID client potrebbe essere:
ctl001_masterControlName_panelControlName_controlWeWant
Ora sono diventati:
ctl001_masterControlName_panelControlName_controlWeWant_0
Da dove viene quel _0
suffisso viene? C'è solo un controlWeWant
in panelControlName
, quindi il suffisso non aggiunge alcun valore.
Lo so client ID hardcoded sono una cattiva idea con WebForms; uno dei motivi ci siamo trasferiti ad ASP.NET MVC è stato il terribile HTML prodotto da WebForms. Tuttavia per questo codice legacy siamo bloccati con esso, e preferisco non andare cambiarlo (fino al giorno in cui abbiamo un po 'di tempo libero per farlo correttamente).
Perché è ASP.NET 4 aggiungendo il suffisso _0
a tutti?
Posso spegnerlo?
C'è un altro modo per evitarlo?
Soluzione
Scopri Cosa c'è di nuovo in ASP.NET 4.0 - ClientID Generation per un pulitore MarkUp . Spiega alcune nuove funzionalità in ASP.NET 4.0 quando si tratta di generazione id.