2016-08-03 92 views
2

Ich habe den folgenden Code:Geben Sie eine Zeichenfolge mit Doppel- und Einzel Zitaten von asp zu JavaScript-Funktion

PropertyID = 101 
PropertyName = "My'complex" property name"" //This is passed from sql query 
Response.Write "<a href=""javascript:RenameFunc("& PropertyID & ", '" & PropertyName & "')"" onclick=""""></a>" 

Das Problem ist, dass, wenn ich einfache oder doppelte Anführungszeichen in meinen Variablen, die JavaScript-Funktion Bremsen (die ist normal).

Ich habe versucht, sie so zu entkommen:

Response.Write "<a href=""javascript:RenameFunc("& PropertyID & ", '" & Replace(Replace(PropertyName,"'",""),"""","") & "')"" onclick=""""> </a>" 

Dies ist die Funktion nicht brechen, aber es entfernt die Zitate aus meinem String und ich sie brauche.

Ich habe auch versucht mit String.row wie folgt aus:

Response.Write "<a href=""javascript:RenameFunc("& PropertyID & ", String.raw`"& PropertyName &"`)"" onclick=""""> </a>" 

noch keinen Erfolg, aber vielleicht benutze ich es der falsche Weg.

Gibt es eine andere Möglichkeit, die Zeichenfolge zu übergeben und so zu behalten, wie sie ist, ohne die JavaScript-Funktion zu unterbrechen?

+3

Sie mit 'Server.HTMLEncode versucht haben()'? – haim770

+0

Gerade habe ich es versucht und es funktioniert! :) Vielen Dank. Schreibe es als Antwort, wenn du willst und ich werde es akzeptieren. Ich wusste, dass es etwas Einfaches sein wird .... – Nyagolova

+1

Einige Bett Zeit lesen ... http://Stackoverflow.com/a/143410/692942 – Lankymart

Antwort

3

Verwenden Sie den Server.HTMLEncode() Helfer:

Response.Write "<a href=""javascript:RenameFunc("& PropertyID & ", '" & Server.HtmlEncode(Replace(PropertyName,"'","\'")) & "')"" onclick=""""> </a>" 

Siehe Documentation

+1

So stellte sich heraus, dass ich immer noch Probleme mit den einzelnen Anführungszeichen habe, aber ich habe behoben es mit ''" & Server.HtmlEncode (Ersetzen (PropertyName, "'", "\ '")) & "'' Jetzt funktioniert es gut. – Nyagolova