ASP.net не заполняет action = «» серверной формы при выпуске

У меня есть сайт веб-форм 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>

Я знаю, что тег формы не имеет определенного идентификатора / действия и т. Д., Потому что ASP настраивает значение по умолчанию во время выполнения, и это нормально, хотя для некоторых причина, по которой он портит мой сервер. Я пробовал использовать action = "<% Path etc%>" , чтобы получить имя пути, но это не работает.

Что я делаю не так? Я что-то упустил или использовать форму на мастер-странице - просто плохая практика?

Спасибо.

Обновление

Хорошо, чтобы решить проблему, указанную в ответе, я просто установил Form.Action на Masterpage 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;
    }
}
7
задан tutts 14 June 2012 в 13:17
поделиться