0

感谢您阅读本文!

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

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

谢谢!

4

2 回答 2

0
  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();
    }
于 2014-05-27T21:39:59.030 回答
0

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

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

查看 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";
    }
}
于 2013-12-03T23:54:31.157 回答