asp.net - 我的 aspx 注册页面的代码不起作用
问题描述
您好,我的注册页面的以下代码不起作用。当我执行它时,它会刷新并保持在同一页面中。但它应该重定向到一个名为 message.aspx 的页面。注册命令的工作方式如下,尝试注册的人在组合框中写入他们的信息,然后一旦他们完成,他们单击按钮开始,这将保存他们的所有信息,然后使用它来个性化 message.aspx 页面,此人将收到一个电子邮件。
这是代码:
Private Sub cmdRegister_Click(sender As Object, e As System.EventArgs) Handles cmdRegister.Click
Dim status As MembershipCreateStatus
Dim organization As New Org
Dim employee As New Employee
Dim description As New Description(25)
Dim userMembership As MembershipUser
Dim stringBuilder As New StringBuilder
Try
Membership.CreateUser( _
txtUserName.Text, _
txtPassword.Text, _
txtEmail.Text, _
"question", _
"answer", _
True, _
status)
If status.ToString = "Success" Then
organization.GSTRate = 1
organization.QSTRate = 1
organization.AccountStatus = 2
organization.Name = txtOrg.Text
organization.Active = 1
organization.OrgTypeID = cboType.SelectedValue
organization.Create()
organization = Nothing
organization = New Org(txtOrg.Text)
employee.Username = txtUserName.Text
employee.OrgID = organization.ID
employee.FirstName = txtFName.Text
employee.LastName = txtLName.Text
employee.Title = txtTitle.Text
employee.Username = txtUserName.Text
employee.IsAdmin = True
employee.IsSupervisor = True
employee.IsAccountant = False
employee.IsAdvalorem = True
employee.Email = txtEmail.Text
employee.Phone = ""
employee.Create()
Roles.AddUserToRole(employee.Username, "Admin")
userMembership = Membership.GetUser(txtUserName.Text)
stringBuilder.Append(description.EnglishDescription)
stringBuilder.Replace("(name)", employee.FirstName & " " & employee.LastName)
stringBuilder.Replace("(OrgName)", organization.Name)
stringBuilder.Replace("(username)", employee.Username)
stringBuilder.Replace("you must activate your account", "you must <a href='https://www.advataxes.ca/login.aspx?action=activate&id=" + userMembership.ProviderUserKey.ToString + "&username=" + userMembership.UserName + "'>activate your account</a>")
SendEmail(userMembership.Email, "Advataxes: Account created ", stringBuilder.ToString, Session("language"))
Session("NewUserEmail") = userMembership.Email
Response.Redirect("message.aspx?id=364")
Else
lblInvalidUserName.Visible = True
If status.ToString = "DuplicateUserName" Then lblInvalidUserName.Text = "Username already exists"
End If
Catch ex As MembershipCreateUserException
MsgBox(GetErrorMessage(ex.StatusCode))
Catch ex As HttpException
MsgBox(ex.Message)
Finally
userMembership = Nothing
organization = Nothing
employee = Nothing
description = Nothing
End Try
End Sub
解决方案
查看您的代码,我怀疑代码执行未成功到达该 Response.Redirect("message.aspx?id=364")
行,并且由于异常,流程跳转到 catch block/
我能想到的两种可能:
- 如果未配置 smtp,则在 SendEmail 方法中引发异常
Membership.CreateUser
由于不正确的数据库连接字符串而失败
我建议您在方法中放置一个断点cmdRegister_Click
并单步执行代码。
推荐阅读
- node.js - 无法生成特定于平台的 docker build Hyperledger Fabric nodejs
- webstorm - WebStorm 中的 JSX 格式 - 缩进
- .net-core - TeamCity .NET CLI (dotnet) 恢复不包括正确版本的深度依赖库
- java - 名称来自 ArrayList 的 Java 字符串
- javascript - 无法使用 jquery 打印字符串 - 按下按钮时
- arrays - 有没有办法让这段代码更有效率?因为我想在 google 的平台上解决一个挑战,它给了我 Time Limited Exceeded
- r - 在行名前写有空格的表
- javascript - 无法访问使用 useState 挂钩复制的数据
- c++ - 让线程池的所有线程执行给定的函数
- python - 为什么替换功能不改变列文本?