특히 IDataError interface의 상속으로 View에서의 데이터 에러를 검증하고, 그 에러를 View에서 표시하는데 사용할 수 있는 여력이 많이 보인다.
여러가지로 재미있다고 해야지 될까나.
public class GuestResponse : IDataErrorInfo { public string Name { get; set; } public string Email { get; set; } public string Phone { get; set; } public bool? WillAttend { get; set; } public string Error { get { return null; } } // Not required for this example public string this[string propName] { get { if((propName == "Name") && string.IsNullOrEmpty(Name)) return "Please enter your name"; if ((propName == "Email") && !Regex.IsMatch(Email, ".+\\@.+\\..+")) return "Please enter a valid email address"; if ((propName == "Phone") && string.IsNullOrEmpty(Phone)) return "Please enter your phone number"; if ((propName == "WillAttend") && !WillAttend.HasValue) return "Please specify whether you'll attend"; return null; } } }
참 여러가지로 사용되는 Interface가 많은 것 같다. 무언가 class를 생성할 때, 언제나 먼저 생각해줄 것이.
일단 Framework에서 지원되는 class가 있는지. 내가 사용할 action이 정의되어있는 interface는 존재하는지에 대한
생각은 항시 필요한 것 같다.
공부할 내용이 너무나 많아. --;
그리고, asp.net에서 SmtpClient를 사용할 때, 개발 환경이나 개인 환경에서 SMTP 서버를 사용할 수 없을 때, File에 지정할 수 있는 방법이 있다
web.config에 다음과 같은 설정을 넣어주면 된다.