这让我发疯了。我已经审查并尝试了这些 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 步。
任何提示将不胜感激。