我有一个CreateUserWizard控件,正在执行服务器端验证。有没有办法强制从代码隐藏显示CUW的错误消息?此时,如果用户输入重复的名称,则会显示控件DuplicateUserNameErrorMessage属性。但是,如果用户关闭了javascript,或发送了带有无效字符的自定义POST标头,我依靠我的服务器端验证来捕获错误。然后,我如何在控件的ErrorMessage标签中显示相同的错误消息,而不是创建自定义标签并伪造它?
编辑:只是为了澄清,服务器端验证测试了各个方面。重复用户只是控件调用ErrorMessage标签的一个示例。
由于
答案 0 :(得分:5)
更新
这是可行的,但需要私人反思:
void CreateUserWizard1_CreatingUser(object sender, LoginCancelEventArgs e) {
typeof(CreateUserWizard).GetField(
"_unknownErrorMessage",
System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance)
.SetValue(sender, "My error message");
e.Cancel = true;
}
基本上,您将此字段设置为所需的错误消息,然后CreateUserWizard将其选中。作为私人反思,它不是一种“支持”的技术,但如果没有别的办法可以考虑,至少可以考虑。
我认为你不应该做任何特别的工作。通常,支持客户端验证的任何内容都具有匹配的服务器端验证逻辑。事实上,对于像重复名称这样的东西,只有服务器端验证,所以我不认为关闭javascript会影响场景。
当您禁用javascript并发布重复名称时,您究竟看到了什么?你能用一个简单的页面重新解决这个问题,还是有一些可能影响它的附加因素?
我尝试使用简单的CUW并禁用了javascript,并且正确显示了重复的用户错误。