div aggiungendo il redirect e l’immagine di sfondo dal codice sottostante in asp.net

Ho un div in una pagina master di asp.net con runat=server .

Quello che voglio fare è di codebehind quando l’utente fa clic sul reindirizzamento div a un’altra pagina. Ho provato il seguente:

HTML:

 

Codice dietro:

 logoHead.Attributes.Add("OnClick", "window.location = MyUrl"); 

Questo non funziona, come posso fare questo?

Quello che stai facendo funzionerà bene. Il problema che hai è “Attributes.Add” sta causando il javascript per ottenere la codifica HTML. Questo perché non si sta utilizzando un controllo specifico ASP.NET. Il tuo onclick sta mostrando come:

 onclick="window.location='MyUrl'" 

Per ovviare a questo metto qualsiasi javascript che voglio aggiungere, a un controllo NON ASP.NET in questo modo, in una funzione per eliminare eventuali caratteri divertenti che saranno codificati in HTML. Esempio:

Javascript:

 function redirect(address) { window.location = 'http://' + address; } 

ASPX:

 
Testing

Codice dietro:

 divTesting.Attributes.Add("onclick", "redirect('www.microsoft.com');"); 

Questo è solo un problema con i controlli HTML che stai aggiungendo un tag runat='server' per accedervi dal lato server. Se cambi il tuo div in un asp:Panel allora non c’è nessuna codifica HTML fatta su Attribute.Add e puoi semplicemente inserire tutto ciò che vuoi lì senza la funzione javascript del proxy. Questa è una sorta di “caratteristica” fastidiosa, ma ho il sospetto che sia intenzionale.