2012-04-13 18 views
8

Ho controllato il mio sito web di convalida HTML in w3.org ed ha ottenuto questo errorevalidazione W3C per lato server tag form

Bad valore per l'azione attributo forma elemento: deve essere non vuoto.

ma il mio modulo è asp.net sul lato server e non posso impostare l'azione di assegnazione.

Come posso risolvere questo errore?

risposta

11

Questo è un vecchio post, ma per riferimento futuro in ASP.NET può fare quanto segue per evitare azioni vuoto attributi:

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

Questa convaliderà con W3C e non richiede di fare qualsiasi speciale codifica per rilevare l'url della pagina in cui ti trovi attualmente.

+0

In realtà, questo è problematico. Se si tenta di fare un post con la soluzione action = "#", si otterrà un errore di verbo HTTP sul lato server. – abegosum

+0

@abegosum Ho usato questa soluzione per un po 'ora in ASP.NET senza il tuo problema segnalato, qualche idea del perché questo accade? –

+0

Potrebbe esserci un problema con la versione o l'impostazione di IIS (sospetto che sia un'impostazione di sicurezza per impedire determinati tipi di script di injection)? La tua pagina sta facendo dei postback? – abegosum

2

Omettere l'attributo action. In base alle bozze HTML5, non è necessario, ma se presente, il suo valore deve essere non vuoto. Riferimento: bozza HTML WHATWG, description of action attribute.

+1

In ASP.NET non si può omettere l'attributo di azione, se il codice

Sarà il rendering come ; è proprio il modo in cui funziona. Vedere la mia risposta per una soluzione migliore. –

+2

Ogni volta che imparo qualcosa di nuovo su ASP.NET, lo odio ancora un po '. – Quentin

7
form1.Action = Request.Url.AbsoluteUri; 

questo sta lavorando per me