2012-04-13 16 views
8

Ich habe meine Website HTML-Validierung in w3.org überprüft und bekam diesen FehlerW3C-Validierung für die serverseitige Formular-Tag

Bad Wert für das Attribut Aktion auf Element Form: Muss nicht leer sein.

aber mein Formular ist asp.net Server-Side-Formular und ich kann Aktion Attribut nicht festlegen.

Wie kann ich diesen Fehler beheben?

Antwort

11

Dies ist eine alte Post, aber für die Zukunft in ASP.NET kann man folgendes vermeiden leere Aktion tun Attribute:

<form action="#" runat="server"> 

Das mit W3C validiert werden und erfordert keine Sie spezielle zu tun Kodierung, um die Seiten-URL zu erkennen, auf der Sie sich gerade befinden.

+0

Eigentlich ist das problematisch. Wenn Sie versuchen, einen Post mit der Lösung action = "#" zu erstellen, erhalten Sie einen serverseitigen HTTP-Verb-Fehler. – abegosum

+0

@abegosum Ich verwende diese Lösung seit einiger Zeit in ASP.NET ohne Ihr gemeldetes Problem, keine Ahnung, warum dies geschieht. –

+0

Kann ein Problem mit der Version oder Einstellung von IIS sein (ich vermute, dass es eine Sicherheitseinstellung ist, um bestimmte Arten der Skript-Injektion zu verhindern)? Verarbeitet Ihre Seite Postbacks? – abegosum

2

Lassen Sie das Attribut action aus. Laut HTML5-Entwürfen ist es nicht erforderlich, aber falls vorhanden, muss der Wert nicht leer sein. Referenz: WHATWG HTML5 Entwurf, description of action attribute.

+1

In ASP.NET Sie nicht das action-Attribut weglassen, wenn Sie Code

es als ; Es ist einfach so, wie es funktioniert. Siehe meine Antwort für eine bessere Lösung. –

+2

Jedes Mal, wenn ich etwas Neues über ASP.NET lerne, hasse ich es mehr. – Quentin

7
form1.Action = Request.Url.AbsoluteUri; 

dies ist für mich arbeiten