การตรวจสอบความถูกต้องจะควบคุมการทดสอบอินพุตของผู้ใช้ ตั้งค่าสถานะข้อผิดพลาด และสร้างข้อความแสดงข้อผิดพลาด พวกเขาจะไม่เปลี่ยนขั้นตอนการประมวลผลของเพจ ตัวอย่างเช่น พวกเขาจะไม่ข้ามโค้ดเมื่อตรวจพบข้อผิดพลาดในการป้อนข้อมูลของผู้ใช้ แต่คุณจะต้องทดสอบสถานะของการควบคุมในโค้ดก่อนที่จะดำเนินการตรรกะเฉพาะของแอปพลิเคชันของคุณ หากตรวจพบข้อผิดพลาด โค้ดของคุณจะไม่ทำงาน เพจจะดำเนินการประมวลผลต่อและส่งคืนให้กับผู้ใช้พร้อมข้อความแสดงข้อผิดพลาด
หมายเหตุด้านความปลอดภัย: ตามค่าเริ่มต้น เว็บเพจ ASP.NET จะตรวจสอบโดยอัตโนมัติว่าผู้ใช้ที่เป็นอันตรายพยายามส่งสคริปต์หรือองค์ประกอบ HTML ไปยังแอปพลิเคชันของคุณหรือไม่
คุณสามารถทดสอบสถานะทั้งหน้าทั่วไป และคุณสามารถทดสอบสถานะของตัวควบคุมแต่ละรายการได้ โดยทั่วไป คุณทำเช่นนี้ในตัวจัดการเหตุการณ์ที่คุณสร้างสำหรับเพจ
1. ทดสอบสถานะข้อผิดพลาดทั่วไป
ในโค้ดของคุณ ให้ทดสอบคุณสมบัติ IsValid ของเพจ คุณสมบัตินี้จะสะสมค่าของคุณสมบัติ IsValid ของการควบคุมการตรวจสอบทั้งหมดบนเพจ (โดยใช้ตรรกะ AND) หากมีการตั้งค่าการควบคุมการตรวจสอบใด ๆ ให้ไม่ถูกต้อง คุณสมบัติของเพจจะส่งกลับค่าเท็จ
คำอธิบาย: ไม่มีข้อมูลการรับรองความถูกต้องในระหว่างการเริ่มต้นหรือขั้นตอนการโหลดของเพจ อย่างไรก็ตาม คุณสามารถเรียกใช้เมธอด Validate ด้วยตนเองในระหว่าง Page_Load จากนั้นทดสอบคุณสมบัติ IsValid ของเพจได้
ตัวอย่างโค้ดต่อไปนี้แสดงให้เห็นถึงตัวจัดการเหตุการณ์สำหรับปุ่ม รหัสนี้ทดสอบคุณสมบัติ IsValid ของเพจ โปรดทราบว่าไม่จำเป็นต้องมีส่วนคำสั่งอื่นที่นี่ เนื่องจากเพจจะกลับไปยังเบราว์เซอร์โดยอัตโนมัติ และตัวควบคุมการตรวจสอบจะแสดงข้อความแสดงข้อผิดพลาดของตัวเอง
เป็นโมฆะ Button1_Click (ผู้ส่งวัตถุ System.EventArgs e)
-
ถ้า (ถูกต้อง)
-
// ดำเนินการอัพเดตฐานข้อมูลหรือตรรกะอื่นๆ ที่นี่
-
-
2. ทดสอบสถานะข้อผิดพลาดของการควบคุมแต่ละรายการ
ทำงานผ่านคอลเลกชัน Validators ของเพจ ซึ่งมีการอ้างอิงถึงการควบคุมการตรวจสอบทั้งหมด จากนั้นคุณสามารถตรวจสอบคุณสมบัติ IsValid ของตัวควบคุมการตรวจสอบแต่ละรายการได้
หมายเหตุ: หากคุณต้องการดำเนินการตรวจสอบนี้ระหว่าง Page_Load คุณต้องเรียกใช้เมธอด Validate ด้วยตนเองก่อน
ตัวอย่างรหัสต่อไปนี้สาธิตวิธีการขอรับสถานะของการควบคุมการตรวจสอบเดียว
ถ้า (นี่คือ IsPostBack)
-
นี้.ตรวจสอบ();
ถ้า (!this.IsValid)
-
สตริงข้อความ = "";
// วนซ้ำการควบคุมการตรวจสอบทั้งหมดเพื่อดูว่าอันไหน
// สร้างข้อผิดพลาด
foreach (IValidator aValidator ใน this.Validators)
-
ถ้า (!aValidator.IsValid)
-
msg += "<br />" + aValidator.ErrorMessage;
-
-
Label1.Text = ผงชูรส;
-
-
บทความนี้มาจากบล็อก CSDN โปรดระบุแหล่งที่มาเมื่อพิมพ์ซ้ำ: http://blog.csdn.net/dodream/archive/2009/12/17/5024643.aspx
-