gpt4 book ai didi

asp.net - CreateUserWizard 忽略 .MoveTo

转载 作者:行者123 更新时间:2023-12-02 01:57:42 24 4
gpt4 key购买 nike

这让我抓狂。我已经审查并尝试了这些 SO 线程的答案,但无济于事:

CreateUserWizard step changing issue after account creation

Advancing wizard from code-behind in ASP.NET

Prevent Navigation to CreateUserWizardStep in the Postback event of nextbutton

我在数据库中创建用户之前添加了一个向导步骤:

(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 步。

如有任何提示,我们将不胜感激。

最佳答案

向导不会在这里停止下一步。您需要定义 OnNextButtonClick 并使用此事件取消移动到下一个向导步骤。

<asp:Wizard OnNextButtonClick="RegisterUser_NextButtonClick" ID="RegisterUser" 
runat="server">

protected void RegisterUser_NextButtonClick(object sender, WizardNavigationEventArgs e)
{
if(RegisterUser.ActiveStep==0)
{
recaptcha.Validate();
if (! recaptcha.IsValid)
{
e.Cancel = true;
}
}
return;
}

关于asp.net - CreateUserWizard 忽略 .MoveTo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19031440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com