텍스트 상자에 ASP.NET 정규식 검사기를 사용하는 데 문제가 있습니다. 나는 NullReferenceException이가 던져 어디 "ERROR"를 표시정규식 Validate() yield NullReference (ASP.NET)
RegularExpressionValidator regex = new RegularExpressionValidator();
regex.ID = "TextBoxRegExValidator" + ((AVPEditControl)avpControl).ThisFieldRID.ToString(); //random name
regex.ControlToValidate = ((AVPEditControl)avpControl).TextControlID; //this is valid.
regex.ValidationExpression = "\d{3}-\d{2}-\d{4}";
regex.Text = "epic fail";
//later, in an event handler
regex.Display = ValidatorDisplay.None;
regex.ErrorMessage = "";
regex.Validate(); //ERROR
bool valid = AVPEdit.Validator.IsValid;
인가 : 이 내 코드의 압축 된 버전입니다. 내가 여기서 뭘 놓치고 있는지 모르겠다. 왜냐하면 정규 표현식이 그 문맥에서 null이 아니라는 것을 디버거로 확인했기 때문이다.
오류 메시지가 표시되는 방식에 대해 좀 더 정교하게 제어하고 싶습니다. 그래서 내가 정규식을 어떤 패널 등에 연결하지 않았는지를 확인했습니다.
왜 내가 null 참조를 얻고 있습니까? (.NET에서이 버그가 있습니까?)
또한 Visible을 0으로 설정하면 작동하지만 IsValid가 항상 true가되도록 설정합니다.
Regex를 사용하기 위해 바꿨습니다. 나는 C#이 정규 표현식의 기본 원리를 가졌음을 깨닫지 못했다. – Earlz