0

私はのようなボタンを持っています

<asp:Button ID="Button1" runat="server" Text="Submit"  onclick="RedirectToLocker"  
                 OnClientClick="return false;" UseSubmitBehavior="false" />

とコードビハインドのメソッドは次のようになります

  public void RedirectToLocker(object sender, EventArgs e)
        {
            Response.Redirect(ConfigurationManager.AppSettings["LockerLoginURL"]);

        }

しかし、ボタンをクリックしても、メソッドのコードはヒットしません。OnClientClick ="returnfalse;"を削除すると 次に、ボタンはフォームを送信し、間違ったページに移動します。私は何が間違っているのですか?

編集:私はOnClientClick ="returnfalse;"を使用しています それがないと、何らかの理由でボタンがネストされたフォームの送信として機能し、コードを押す代わりにフォームアクションのURLにすぐにリダイレクトされるためです。

4

3 に答える 3

2

クライアント側のイベントハンドラーがfalseを返す場合、ポストバックは省略されます。

OnClientClick="return false;" // <-- no postback

したがって、それを削除するか、js-onclickイベントから実際にfalseを返したい理由を教えてください。Response.Redirectが間違ったページに移動する場合は、それを変更することをお勧めします。

編集:フォームActionを別のURLに設定して、別のページにリダイレクトします。次に、ボタンPostBackUrlを現在のページと同じURLに設定できます。次に、コードビハインドにヒットします。

于 2012-05-09T16:02:16.010 に答える
0

OnClientClick="return false;"サーバー側のメソッドを実行するには、削除する必要があります。

ブラウザが間違ったページにリダイレクトしている場合は、でLockerLoginURLアプリケーション設定値を確認してくださいweb.config。これは、リダイレクト先のURLと一致している必要があります。

これを正しいURLに変更してください。

于 2012-05-09T16:00:18.077 に答える
0

OnClientClick ="returnfalse;"を削除します

于 2012-05-09T16:00:41.893 に答える