2

外部 URL に設定された ASCX ページにフォーム アクションがあります。

<form id="fLoginForm" runat="server" action="http://external.url" method="post" defaultbutton="bSignIn">

内部には標準の ASP リンクボタンがあります

<asp:LinkButton CssClass="btn" ID="bSignIn" runat="server" Text="Sign In" OnClick="bSignIn_Click" />

action="http://external.url"フォームタグを設定すると、イベント「bSignin_Click」が発生しません。ただし、アクションを削除すると、期待どおりに機能します。runat='server'フォームの場合、フォームは常にポストバックされると思いましたか? アクション属性から URL を読み取り、ページ内にもいくつかの非表示の入力値を使用して URL にリダイレクトする必要があります。

ありがとう。

4

4 に答える 4

1

ハンドラー内でサインイン機能を処理してみませんbSignIn_Click()か?

次に、を使用してユーザーを目的のURLにリダイレクトしますResponse.Redirect("http://external.url");

于 2011-01-27T11:06:51.083 に答える
1

同僚のマシンではまったく異なる動作をしたため、動作は実際には非常に奇妙でした-SVNからのソリューションを再チェックすると、機能しました。変。

于 2011-01-28T20:25:17.410 に答える
1

実際にリンク ボタンをクリックすると、フォームはクリック イベントを処理するためにポストバックします。フォーム アクションでアクション URL を指定すると、アクション URL にリダイレクトされます。

論理的に間違っているので、アクション URL を削除する必要があります

于 2011-01-27T10:55:00.330 に答える
0

お持ちのフォームでは、リンクボタンをクリックすると、フォーム内のすべてのデータがURLに投稿され、これらすべてのイベントを処理できる同じフォーム(したがって「ポストバック」という用語)に投稿されません。

(フォームアクション属性の代わりに)非表示フィールドにそのURLを書き込んで、コードビハインドでその非表示フィールド値を読み取ることができます。

于 2011-01-27T11:08:04.463 に答える