0

クライアントから、独自のドメインで実行されているサイトを別のアプリのサブフォルダーに移動する必要がありました。

これは、ISAPI書き換えプロキシを使用して実現しました。

ただし、サイトに投稿するフォームが1つあります。ASP.NETから生成されたアクションのURLは、「/ sign-up.aspx?」です。。これにより、ポストバックがサイトのルートに送信されます。

これを「sign-up.aspx?」に変更したいのですが。(先頭のスラッシュはありません)。フォームへの参照を取得してそのアクションを変更できるため、マスターページを使用していなかった場合はこれで問題ありません(これは.NET 3.5 SP1です)。コントロールで次のコードを使用してフォームへの参照を取得しようとしましたが、何も実行されないようです。フォームは検出されますが、アクションは値に設定されていません。

        HtmlForm form = ControlLocator.FindControl<HtmlForm>(Page.Master.Master, "form1");
        form.Action = "sign-up.aspx?";

これはPage_Loadにあり、ControlLocator.FindControlはこのhttp://www.west-wind.com/Weblog/posts/5127.aspxの移植版です。

何か案は?

乾杯、ロブ

4

4 に答える 4

4

あなたの問題を解決するのは良いことです。ただし、aspnetform のアクション URL を変更したい場合は、Page_Load イベントでこの単純なコードを使用します (マスター ページがある場合でも)。

protected void Page_Load(object sender, EventArgs e)
{
    this.Form.Action = "URL Goes Here";
}
于 2012-05-29T11:53:22.603 に答える
1

サインアップ フォームにボタンがある場合は、そのボタンのpostBackUrl属性を使用して、ポストバックを別の URL にリダイレクトできます。

<asp:button id="SignUpBtn" 
            runat="server"
            postbackurl="sign-up.aspx" 
            value="Sign Up" />

詳細については、「ASP.NET Web ページでのクロスページ ポスティング」を参照してください

于 2010-01-13T22:36:30.510 に答える
1

page_prerender で試してみましたか?

すべてのマスター コンテンツのマージがまだ page_load で行われていない可能性があります。HtmlForm が正しいタイプであり、フォームが実際に「form1」と呼ばれていると仮定すると、これは正しいと確信しています。

于 2010-01-13T22:09:10.187 に答える
0

最終的に、変更後にポストバック URL を書き換えていたのは umbraco の Form.browser であることがわかりました。(私の最初の質問で umbraco の使用について言及していないことをお詫びします)。

于 2010-01-17T14:26:09.900 に答える