key*_*rdP 4 asp.net code-behind createuserwizard
我有一个CreateUserWizard控件,正在执行服务器端验证.有没有办法强制从代码隐藏显示CUW的错误消息?此时,如果用户输入重复的名称,则会显示控件DuplicateUserNameErrorMessage属性.但是,如果用户关闭了javascript,或发送了带有无效字符的自定义POST标头,我依靠我的服务器端验证来捕获错误.然后,我如何在控件的ErrorMessage标签中显示相同的错误消息,而不是创建自定义标签并伪造它?
编辑:只是为了澄清,服务器端验证测试各个方面.重复用户只是控件调用ErrorMessage标签的示例.
谢谢
更新:
这是可行的,但需要私人反思:
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;
}
Run Code Online (Sandbox Code Playgroud)
基本上,您将此字段设置为所需的错误消息,CreateUserWizard将其选中.作为私人反思,它不是一种"支持"的技术,但如果没有别的办法,它至少是一个考虑的选择.
我觉得你不应该做任何特别的工作.通常,支持客户端验证的任何内容都具有匹配的服务器端验证逻辑.事实上,对于像重复名称这样的东西,只有服务器端验证,所以我不认为关闭javascript会影响场景.
当您禁用javascript并发布重复名称时,您究竟看到了什么?你能用一个简单的页面重新解决这个问题,还是有一些可能影响它的附加因素?
我尝试使用普通的CUW并禁用了javascript,并且正确显示了重复的用户错误.