ASP.net не заполняет действие = «» серверной формы при освобождении
У меня есть веб-сайт ASP.net с серверной формой на главной странице, так как все страницы требуют этого.
При отладкеaction
параметр заполняется во время выполнения вместе сid
, но при развертывании на моем сервере с IIS7 он не появляется ... но все еще работает. Это не вызывает проблем с сайтом, но делает мою проверку W3C HTML5 неудачной, так как она должна быть заполнена.
Источник отладки:
<form method="post" action="index.aspx" id="aspnetForm">
Живой источник:
<form method="post" action="" id="aspnetForm">
Форма декларации на главной странице:
<form runat="server">
.. some divs
</form>
Я знаю, что для тега формы не определены ID / действие и т. Д., Поскольку ASP настраивает значение по умолчанию во время выполнения, и это нормально, хотя по какой-то причине он портится на моем сервере. Я пытался использоватьaction="<% Path etc %>"
, чтобы получить путь, но он не работает.
Что я делаю неправильно? Я что-то упустил или это просто плохая практика - использовать форму на главной странице?
Благодарю.
Обновить
Хорошо, чтобы решить проблему, указанную в ответе, я просто установил действие Form.Action на главной странице Page_Load, и наконец получил зеленый свет W3C!
Запись: Я использую Intelligencia Rewriter, но вы можете получить URL с помощью Request.Url
public partial class myMasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Form.Action = Intelligencia.UrlRewriter.RewriterHttpModule.RawUrl;
}
}