2011-11-15 3 views
6

다음보기 모델이 있습니다.앞과 뒤 공백을 무시하는 뷰 모델 유효성 검사

public UserViewModel { 
... 
[Email(@"^[email protected][^\.].*\.[a-z]{2,}$", false, ErrorMessage="...")] 
public string EmailAddress{ get; set; } 
... 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult Visitor(UserViewModel userViewModel) 
... 

내가 찾은 그러나 때로는 사용자가 복사 및 붙여 넣기 다른 이메일, 워드 문서 등에서보기로 이메일과 때로는 선도 및/또는 후행 공간을 선택합니다. 사용자가 가장 지능적이지 않고 공백이 입력 컨트롤에 표시되지 않으면 실제로이를 무시하고 계속 수행해야합니다.

그래서 내 모델 상태가 유효하지 않은 경우, 나는 this-

  1. 내 검증 발현에 공간을 추가 해결하는 가장 좋은 방법을 궁금

    .
  2. 조치 결과 메소드에서 이메일을 트림하고 모델 상태에서 오류를 수동으로 제거하는지 점검하십시오.
  3. 다른 무언가를
  4. ...

은 확실 약 1도 2도 정직하게 100 % 아니다!

답변

3

정말 유효성 검사 식에 공백을 추가하지 않을 것입니다. ASP.NET MVC: Best way to trim strings after data entry. Should I create a custom model binder?

+0

이상적으로 나는 단지 모든 속성에있는 "이메일"속성에서만 그것을 원한다. 그러나 나는 이것에 대해 생각할 필요가 있다고 말했다. – Rippo

+0

더 많이 생각하면할수록 더 적합하다고 생각됩니다. 나는 내 웹 사이트에서 선두/후행 공백을 유지해야하는 곳이 하나도 없다. ... – Rippo

2

당신이 너무 속성의 값을 설정시 트림 코드를 위해 setter를 변경할 수 있습니다

는이 답변에서보세요.

+0

간단하고 쉬운! 나는 그것도 좋아한다! –

+0

나는 그렇지 않습니다. 그것은 [POLS] (http://en.wikipedia.org/wiki/Principle_of_least_astonishment)에 위배됩니다. 왜냐하면 당신이 한 가지를 넣고 다른 것을 꺼내기 때문입니다. –