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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top