基本上,在点击提交按钮进入用户表后,我将用户输入的关于个人详细信息的数据输入到文本框中。这工作正常,直到我在这些文本框上使用验证,现在所有验证工作,但是当单击提交时,它转到我链接到按钮的页面,但现在没有数据输入到数据库中的用户表。
任何想法?
我的代码如下所示。谢谢
Protected Sub cmdSubmit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click
'add new user'
Dim db As New LostPropertyDataContext
Dim U As New tblUser With {.Forename = txtforename.Text,
.Surname = txtsurname.Text, .DateOfBirth = txtdob.Text, .Gender = txtgender.Text,
.Address = txtaddress.Text, .Postcode = txtpostcode.Text, .TelephoneNo = txttelephoneno.Text,
.MobileNo = txtmobileno.Text, .Email = txtemail.Text}
db.tblUsers.InsertOnSubmit(U)
db.SubmitChanges()
Response.Redirect("/u1065977/LostPropertyProject/LostProperty2.aspx")
End Sub
答案 0 :(得分:0)
当您说您添加了验证时,我认为您的意思是您已将验证控件添加到您的页面。
这是一个很好的做法 - 有人可能会说,这是一种必要的做法 - 将代码包装在测试中是否通过验证:
If Page.IsValid Then
'add new user'
Dim db As New LostPropertyDataContext
Dim U As New tblUser With {.Forename = txtforename.Text,
.Surname = txtsurname.Text, .DateOfBirth = txtdob.Text, .Gender = txtgender.Text,
.Address = txtaddress.Text, .Postcode = txtpostcode.Text, .TelephoneNo = txttelephoneno.Text,
.MobileNo = txtmobileno.Text, .Email = txtemail.Text}
db.tblUsers.InsertOnSubmit(U)
db.SubmitChanges()
Response.Redirect("/u1065977/LostPropertyProject/LostProperty2.aspx")
End If
您正在尝试更新,而不检查服务器端是否已通过验证。如果您正在使用任何自定义验证(例如CustomValidator
),那么您就没有机会向您报告失败的情况。