Hier ist mein aktueller Validierungscode im Controller:
Code: Select all
if (string.IsNullOrEmpty(NewTeacher.TeacherEmployeeNumber) ||
!NewTeacher.TeacherEmployeeNumber.StartsWith("T") ||
!System.Text.RegularExpressions.Regex.IsMatch(NewTeacher.TeacherEmployeeNumber.Substring(1), @"^\d+$"))
{
ModelState.AddModelError("TeacherEmployeeNumber", "Employee number must start with 'T' followed by digits");
isValid = false;
}
< /code>
, aber ich erhalte einen Fehler < /p>
System.ArgumentoutoFrangeException
< /blockquote>
Wenn ein Benutzer einen leeren Zeichenfolge oder nur "T" ohne Zahlen eingibt. Als Anfänger verstehe ich nicht vollständig, was dies verursacht oder wie es behoben werden soll.public class Teacher
{
public int TeacherId { get; set; }
[Required(ErrorMessage = "Teacher Employee Number is required")]
public string TeacherEmployeeNumber { get; set; }
[Required(ErrorMessage = "Teacher First Name is required")]
public string TeacherFName { get; set; }
// other properties...
}
System.ArgumentOutoFrangeException
< /blockquote>
Wenn versucht, die Substring (1) < /code> auf Zeichenfolgen auszuführen, die leer oder nur ein Zeichen lang sind. Ich denke, das Problem ist, dass ich versuche, das Substring zu überprüfen, bevor ich überprüfe, ob die Zeichenfolge über genügend Zeichen enthält. Als Anfänger fällt es mir schwer, die richtige Reihenfolge der Validierungsschritte zu verstehen und wie ich mit diesen Kantenfällen umgehen kann. Ich habe mir Regex -Tutorials angesehen, aber ich finde sie als Anfänger ziemlich verwirrend.
Jede Hilfe oder Erklärung wäre sehr geschätzt!