【问题标题】:Get ValidationSummary Error Text from Code Behind从后面的代码中获取 ValidationSummary 错误文本
【发布时间】:2013-12-03 20:13:39
【问题描述】:

感谢您阅读本文!

我可能正在寻找答案,或者它可能从未设计为发生,因为 ValidationSummary 是客户端逻辑,但是有没有办法在 ASP 中检索验证摘要字段的错误文本.NET 来自 C# 代码隐藏?此处的目标是构建一条消息,其中包含用户输入的各种信息,以及可能阻止该用户完成操作的任何错误。

如果不能完成也没关系,因为我不认为客户端验证对这个程序中的用户来说是一个很大的问题,但为了完成而包含它会很好。任何建议将不胜感激。

谢谢!

【问题讨论】:

    标签: c# asp.net validationsummary


    【解决方案1】:

    您的问题可能是这些通常在客户端而不是服务器端验证,如果它们实际上不会导致回发。您最好尝试切换到CustomValidator 并在那里进行检查。

    这些发生在服务器端,而不是客户端。

    查看 MSDN 上的文档http://msdn.microsoft.com/en-us/library/9eee01cx(v=vs.85).aspx

    我从未尝试过这个,但这里有一个简单的例子来说明什么是可行的。

    前端

    <asp:TextBox id="Text1" runat="server" />
    
    <asp:CustomValidator id="CustomValidator1" runat="server"
               OnServerValidate="CustomValidator1_ServerValidate"
               Display="Static"
               ErrorMessage="My default message."/>
    

    后端

    protected void ServerValidation (object source, ServerValidateEventArgs args)
    {
        // default to valid
        args.IsValid = true;
        int i;
        if (int.TryParse(Text1.Text.Trim(), out i) == false)
        {
            // validation failed, flag invalid
            args.IsValid = false;
            CustomValidator1.ErrorMessage = "The value " + Text1.Text.Trim() + " is not a valid integer";
        }
    }
    

    【讨论】:

    • 感谢您的 cmets。我实际上也有一些自定义验证器。在服务器端自己运行验证检查并不重要;相反,我很好奇是否有办法检索已经显示在屏幕上的任何验证摘要消息并在代码隐藏中使用这些消息(例如,在页面加载中捕获它们并保存它们以供稍后发送消息)。我不需要设置它们,只需阅读它们,但我一直无法找到暴露的 .Text 或类似内容。
    【解决方案2】:
      protected string GetErrors()
        {
            string Errors = "";
            bool isValidTest = false;
            Validate("myValidationGroup");
            isValidTest = IsValid;
            if (!isValidTest)
            {
                foreach (BaseValidator ctrl in this.Validators)
                {
                    if (!ctrl.IsValid && ctrl.ValidationGroup == "myValidationGroup")
                    {
                        Errors += ctrl.ErrorMessage + "\n";
                    }
                }
    
            }
    
            return Errors.Trim();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 1970-01-01
      相关资源
      最近更新 更多