ASP.net Webフォームサイトがあり、すべてのページに必要なように、マスターフォームにサーバーフォームがあります。リリース時にサーバーフォームのaction = ""が挿入されない
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 /アクション定義さなどを持っているdoesntのformタグを知っている、なぜならASPは、実行時にデフォルトを設定し、何かの理由で私のサーバー上で駄目ですが、それはうまくいきます。私はaction="<% Path etc %>"
を使用してパス名を取得しようとしましたが、動作しません。
私は間違っていますか?私は何かを見逃しているのですか?それとも、マスターページでフォームを使用するのは悪い習慣ですか?
ありがとうございました。この問題を解決するために
更新が
[OK]を、私はちょうどマスターページをPage_LoadにForm.Actionを設定する答えで指摘し、最終的にはそのW3C緑色の光を持って!
注:私はIntelligenciaリライタを使用していますが、あなたはRequest.Url
public partial class myMasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
Form.Action = Intelligencia.UrlRewriter.RewriterHttpModule.RawUrl;
}
}
は< 'に'
不明なサーバータグ 'asp:Form'。 – tutts
'Page.Form.Action = Request.Url.ToString();'は、Intelligenciaなしで、Page_Loadの中で私のために働いていました。 – manafire