感谢您阅读本文!
我可能正在寻找这个问题的答案,或者可能是因为ValidationSummary是客户端逻辑,但它可能从未设计过,但有没有办法在ASP中检索验证摘要字段的错误文本来自C#代码隐藏的.NET?这里的目标是构建一条消息,其中包含用户输入的各种信息,以及可能阻止该用户完成操作的任何错误。
如果无法完成,那很好,因为我不希望客户端验证对于此程序中的用户来说是个大问题,但为了完成而包含它会很好。任何建议将不胜感激。
谢谢!
答案 0 :(得分:0)
您的麻烦可能是这些通常在客户端而不是服务器端验证,如果它们实际上不会导致回发。您可能最好尝试切换到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";
}
}
答案 1 :(得分: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();
}