2012-04-13 3 views
8

Я проверил мою проверку HTML сайта в w3.org и получил эту ошибкуW3C проверки на стороне сервера тег формы

Bad значение для действия атрибута на форме элемента: Должно быть не пусто.

но моя форма isp.net-серверная форма, и я не могу установить атрибут действия.

Как я могу решить эту ошибку?

ответ

11

Это старый пост, но для дальнейшего использования в ASP.NET можно выполнить следующие действия, чтобы избежать пустой действия атрибутов:

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

Это будет проверять с W3C и не требует от вас, чтобы сделать какие-либо специальные для определения URL-адреса страницы, в котором вы сейчас находитесь.

+0

Собственно, это проблематично. Если вы попытаетесь сделать сообщение с решением action = "#", вы получите сообщение об ошибке на стороне сервера HTTP. – abegosum

+0

@abegosum Я использовал это решение какое-то время в ASP.NET без вашей проблемы с сообщением, любая идея, почему это происходит? –

+0

Может возникнуть проблема с версией или настройкой IIS (я подозреваю, что это параметр безопасности для предотвращения определенных типов инъекций скриптов)? Ваша страница делает любые обратные передачи? – abegosum

2

Опустить атрибут action. Согласно черновикам HTML5, это не требуется, но если присутствует, его значение должно быть непустым. Ссылка: WHATWG HTML5 draft, description of action attribute.

+1

В ASP.NET вы не можете опустить атрибут действия, если код <форма Runat = «сервер»> он будет отображаться как <форма действия = "">; это как раз то, как это работает. См. Мой ответ для лучшего решения. –

+2

Каждый раз, когда я узнаю что-то новое об ASP.NET, я ненавижу его еще немного. – Quentin

7
form1.Action = Request.Url.AbsoluteUri; 

это работает для меня