显示CreateUserWizard的错误消息标签

时间:2010-01-10 19:56:33

标签: asp.net code-behind createuserwizard

我有一个CreateUserWizard控件,正在执行服务器端验证。有没有办法强制从代码隐藏显示CUW的错误消息?此时,如果用户输入重复的名称,则会显示控件DuplicateUserNameErrorMessage属性。但是,如果用户关闭了javascript,或发送了带有无效字符的自定义POST标头,我依靠我的服务器端验证来捕获错误。然后,我如何在控件的ErrorMessage标签中显示相同的错误消息,而不是创建自定义标签并伪造它?

编辑:只是为了澄清,服务器端验证测试了各个方面。重复用户只是控件调用ErrorMessage标签的一个示例。

由于

1 个答案:

答案 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,并且正确显示了重复的用户错误。