ASP.NET-einfache Anführungszeichen werden in 'konvertiert

8

Hinweis: Wahrscheinlich wird das eine doppelte Frage sein, aber da ich keine klare Antwort gefunden habe, frage ich es trotzdem.

In ASP.NET möchte ich ein wenig JavaScript zum onclick-Ereignis einer CheckBox hinzufügen. Ich habe den Fall dazu vereinfacht:

%Vor%

Das resultierende HTML ist wie folgt:

%Vor%

Besonders stört mich, dass ein einzelnes Zitat automatisch in "& amp; # 39;" umgewandelt wird. Wenn ich den onclick im Markup weglasse und ihn in Page_Load zuweise, werden genau dieselben Resultate im HTML angezeigt.

%Vor%

Hat irgendwer eine Ahnung, was passiert? Oder wie man es repariert / vermeidet?

    
Herman Cordes 10.06.2010, 11:27
quelle

5 Antworten

1

Falls jemand anderes diese Frage findet, konnte ich auf diese Weise Attribute aus einem benutzerdefinierten Steuerelement einfügen, ohne die Werte html-codiert zu haben. Dies ist ein Beispiel für eine Schaltfläche, die zu einer Async-Funktion aufruft, um eine Tastenbetätigung zu bestätigen.

Der Schlüssel ist, den writer.AddAttribute () zu verwenden, der das Flag hat, um den HTMLEncode-Schritt zu deaktivieren. Dies scheint auch davon abhängig zu sein, welche Version von asp.net Sie verwenden. Dies funktioniert in .net 4.6.1

%Vor%     
PatrickR 02.03.2017, 18:06
quelle
7

Wir hatten das gleiche Problem mit einfachen Anführungszeichen in Attributwerten, als wir ein Projekt von .NET 3.5 nach .NET 4.0 migrierten. Es konvertiert alle einfachen Anführungszeichen in Attributwerten in &39; . Also gingen wir zurück zu .NET 3.5.

Es ist eine .NET 4.0-Sache. Sie können mehr über dieses Problem hier lesen.

    
Jelks 06.10.2010 20:06
quelle
1

Zunächst wird das Kontrollfeld "asp" nicht als gültiges Attribut aktiviert.

Sie können also zwei Dinge tun:

1- Wenn Sie den Wert serverseitig nicht benötigen, können Sie anstelle des Kontrollkästchens asp einfach ein normales Kontrollkästchen aktivieren.

2- Wenn Sie die Wert-Server-Seite benötigen, fügen Sie das runat="server" -Attribut hinzu und platzieren Sie und ID in Ihrem Kontrollkästchen, damit Sie in Ihrem Code darauf verweisen können.

%Vor%     
Moox 10.06.2010 11:39
quelle
0

Ich bin kürzlich auf dieses Thema gestoßen, wo eine Kontrolle aktualisiert wurde, nachdem die Databind stattgefunden hatte. Der Fix bestand darin, das Onchange-JavaScript während des OnItemDatabound-Serverereignisses für den beteiligten Repeater hinzuzufügen:

%Vor%     
Phil Kermeen 28.08.2013 13:31
quelle
0

Ich hatte dasselbe Problem. Ich suchte viel, schließlich löste ich es, indem ich den Inhaltstyp der Seite in application / xhtml + xm änderte.

%Vor%

Hoffe, diese Informationen werden Ihnen helfen ..

    
Jignesh Patel 09.07.2015 08:33
quelle

Tags und Links