หากมีอีเมลอยู่โดยการตรวจสอบฟังก์ชัน ฉันต้องการแสดงข้อผิดพลาด
ฉันจะทำอย่างไร?
[RequiredIf(BL.datafuncs.checkIfExist(email) == true, ErrorMessage = "email already exist")]
public string email { get; set; }
หากมีอีเมลอยู่โดยการตรวจสอบฟังก์ชัน ฉันต้องการแสดงข้อผิดพลาด
ฉันจะทำอย่างไร?
[RequiredIf(BL.datafuncs.checkIfExist(email) == true, ErrorMessage = "email already exist")]
public string email { get; set; }
คุณลักษณะ RequiredIf
ใช้สำหรับการตรวจสอบคุณสมบัติที่จำเป็นโดยพิจารณาจากค่าของคุณสมบัติอื่น ตัวอย่างเช่น หากโมเดลของคุณมีคุณสมบัติ bool NotifyMeByEmail
และ string EmailAddess
คุณสามารถนำไปใช้ได้ดังต่อไปนี้
public bool NotifyMeByEmail { get; set; }
[RequiredIf("NotifyMeByEmail", ErrorMessage = "Please enter you email address")]
public string EmailAddress { get; set; }
จากนั้นในมุมมอง หากไม่ได้ทำเครื่องหมายในช่องสำหรับ NotifyMeByEmail
จะมีการสร้างข้อผิดพลาดในการตรวจสอบความถูกต้องสำหรับ EmailAddress
ดูเหมือนว่าคุณต้องการตรวจสอบความถูกต้องของอีเมลที่ผู้ใช้ป้อนว่าไม่มีอยู่ในฐานข้อมูลของเขา ซึ่งในกรณีนี้คุณต้องมีแอตทริบิวต์ [Remote]
(MVC มาตรฐาน ไม่สามารถป้องกันความผิดพลาดได้) วิธีการ: ใช้การตรวจสอบระยะไกลใน ASP.NET MVC
คุณลักษณะที่กำหนดเองถูกฝังอยู่ในแอสเซมบลี ไม่ใช่สิ่งที่รันไทม์ ดังนั้นคุณจึงไม่สามารถใส่ฟังก์ชันไว้ในอาร์กิวเมนต์ของแอตทริบิวต์ได้ ฉันขอแนะนำให้คุณตรวจสอบการเรียกคอนโทรลเลอร์ของคุณและดำเนินการบางอย่างตามนั้น
[Remote]
ที่ตรวจสอบว่ามีอีเมลอยู่แล้วในฐานข้อมูลหรือไม่ และแสดงข้อผิดพลาดหากมี นั่นไม่ใช่สิ่งที่[RequiredIf]
มีไว้เพื่อ - person   schedule 29.10.2014