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?
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% 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.
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%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%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 ..