【发布时间】:2012-08-15 21:34:06
【问题描述】:
我的页面是一个注册页面,用户在其中输入用户名、电子邮件地址和密码。这是我的代码:
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnRegister_Click(object sender, EventArgs e)
{
if (!Page.IsValid)
return;
}
protected void cvEmail_ServerValidate(object source, ServerValidateEventArgs args)
{
args.IsValid = false;
}
这是我的页面:
<asp:ValidationSummary ID="vs" runat="server" />
<asp:TextBox ID="txtUsername" runat="server" />
<asp:TextBox ID="txtEmail" runat="server" />
<asp:TextBox ID="txtPassword" runat="server" TextMode="Password" />
<asp:Button ID="btnRegister" runat="server" OnClick="btnRegister_Click" />
<asp:CustomValidator ID="cvEmail" runat="server" ControlToValidate="txtEmail"
OnServerValidate="cvEmail_ServerValidate"
ErrorMessage="Invalid Email" />
所以问题是如果自定义验证器失败,当页面重新加载我的错误消息时,我的文本框是空的。但奇怪的是,如果我检查 Firebug 中的文本框元素,input 的 value 已设置,但由于某种原因它没有显示在页面上。
我尝试在文本框和页面上将 EnableViewState 设置为 true,但没有帮助。
有人知道我做错了什么吗?
【问题讨论】:
-
我刚刚在 .NET 4.0 的新项目中尝试了示例代码,没有任何问题。验证失败后,用户和电子邮件的值在客户端上可见。密码已被清除,但这是意料之中的,因为它是一项安全功能。
-
是的,我也试过这个,它奏效了。在全新的页面中重试。
标签: c# asp.net validationsummary