これは私を夢中にさせています。これらのSOスレッドからの回答を確認して試しましたが、役に立ちませんでした:
アカウント作成後の CreateUserWizard ステップ変更の問題
nextbutton の Postback イベントで CreateUserWizardStep へのナビゲーションを防止する
データベースにユーザーを作成するウィザードステップの前に、ウィザードステップを追加しました。
(0) 個人情報
(1) 新しいアカウントにサインアップする
(2) 完了
ステップ 0 には、(恐ろしい) reCaptcha があります。ステップ 0 のナビゲーション テンプレート:
<StartNavigationTemplate>
<asp:Button ID="StartNextButton" runat="server" CommandName="MoveNext" Text="Next" OnClick="StartNextButton_Click" CausesValidation="true"/>
</StartNavigationTemplate>
ここでは、分離コードで reCaptcha を検証します。このハンドラ宣言は、VS2012 によって作成されました。検証が失敗した場合は、ステップを再ロード (およびナビゲート) する必要があります。
protected void StartNextButton_Click(object sender, EventArgs e)
{
recaptcha.Validate();
if (! recaptcha.IsValid)
{
RegisterUser.ActiveStepIndex = 0;
RegisterUser.MoveTo(RegisterUser.ActiveStep);
}
}
理想的には (そして私が以前のバージョンで行ったこと) は、検証が失敗したときに e.Cancel = true を設定することです。VS は EventArgs e のみを渡しているため、Cancel を使用できないため、ActiveStep をいじっています。
デバッグは、検証が機能していることを示していますが、検証が失敗した場合 (ActiveStepIndex を 0 に設定しているにもかかわらず)、ステップ 1 に進みます。
ヒントをいただければ幸いです。