2012-04-10 9 views
0

Ich habe eine asp.net Webseite.Howto bekommen 'echte' einfache Anführungszeichen

Gibt es eine Möglichkeit, nur "echte" Single-Anführungszeichen Client-Seite zu bekommen?

Server-Seite:

this.Attributes["onclick"] = "$('#button').click();"; 

Client-Seite:

onclick="$('#button').click();" 

gibt einen Fehler.

Alarm funktioniert gut, das heißt Client-Seite:

onclick="alert('hello#amp;39;);". 

Scheint, wie ich ‚echte‘ einfache Anführungszeichen müssen mit jQuery arbeiten.

+0

mögliche Duplikate von [ASP.NET einfache Anführungszeichen werden in ' konvertiert] (http://stackoverflow.com/questions/3013912/asp-net-single-quotes-are-converted-to-39) – Jason

+0

dup von http : //stackoverflow.com/questions/3013912/asp-net-single-quotes-are-converted-to-39 – stark

+0

Jason: Ja, ich habe diese Schlussfolgerungen schon gemacht. Ich mag die Idee nicht, HTML-Elemente in der Quelldatei zu verwenden und runat = server zu verwenden. Es wird auch ein Problem beim Hinzufügen von dynamischen Steuerelementen zu einer Seite. Ich weiß, dass diese Änderung mit Sicherheit (XSS) zu tun hat, aber es scheint genau wie ein Fehler, wenn Sie mich fragen. Scheint so, als ob MS Fälle wie oben nicht gründlich getestet hat, oder sie müssen anfangen, js etwas mehr zu lieben;) – royu

Antwort

1

Ist dies Standard ASP.NET oder ASP.NET MVC? Es scheint, dass die Ausgabe maskiert wird, aber ohne Beispielcode oder mehr Details kann ich nicht sicher sein.

Ihr Codebeispiel von

this.Attributes["onclick"] = "$('#button').click();"; 

Wie die vom Server gerendert wird? Von einer Kontrolle?

Aktualisiert

Dieses Attribut-Wert-Codierung wurde .NET 4.0 eingeführt. Wenn Sie müssen, können Sie die controlRenderingCompatibilityVersion in Ihrer web.config auf "3.5" setzen, siehe pages Element (ASP.NET Settings Schema) & PagesSection.ControlRenderingCompatibilityVersion Property.

Könnten Sie (statt die onclick-Logik direkt in den Attributwert zu setzen) die Funktion an anderer Stelle aufzeichnen und den Funktionsnamen als onclick-Wert festlegen? Oder registrieren Sie die Click-Handler-Client-Seite mit jQuery?

+0

Standard ASP.NET. Für einen Hyperlink im Seitencode hinter (Prerender) gerendert (HyperLink-Steuerelement auf Seite). – royu

+0

Danke, ich habe eine Beispiel-App erstellt und kann Ihr Problem reproduzieren, und nach einer schnellen Google-Suche sehe ich, dass Sie nicht allein sind, viele andere haben das gleiche Problem nach dem Upgrade auf .NET 4.0. Ich habe meine Antwort mit ein paar Vorschlägen aktualisiert. –

+0

Thx Marc. Ja, ich habe eine jQuery-Ready-Funktion zum Zuweisen des Click-Handlers erstellt. In diesem Fall wird es tun, ich frage mich, was zu tun ist, wenn die Dinge dynamisch sind ... – royu

Verwandte Themen