2010-08-23 2 views
2

확인 내가 제어 언어 = "C#을" 상속 = "System.Web.Mvc.ViewUserControl" @ 다음ASP를 MVC 2 EditorFor 이상한 행동은

<% 같은 문자열을 공유 편집기를 정의한 %>
<퍼센트 = Html.LabelFor (모델 => 모델) %>
<퍼센트 = Html.TextBoxFor (모델 => 모델) %>
<퍼센트 = Html.ValidationMessageFor (모델 => 모델) % >

는 지금은

 <%= Html.EditorFor(model=>model.Username)%> 
     <%= Html.EditorFor(model=>model.Email)%> 
     <%= Html.EditorFor(model=>model.Password)%> 

내 모델이

[Required(ErrorMessage="Le nom d'utilisateur est requis.")] 
    [DataType(DataType.Text)] 
    [DisplayName("Nom d'utilisateur")] 
    public string Username { get; set; } 

    [Required(ErrorMessage = "L'email est requis.")] 
    [DataType(DataType.EmailAddress)] 
    [DisplayName("Courriel")] 
    public string Email { get; set; } 

    [Required(ErrorMessage = "Le mot de passe est requis.")] 
    [ValidatePasswordLength] 
    [DataType(DataType.Password)] 
    [DisplayName("Mot de passe")] 
    public string Password { get; set; } 

이메일 필드 렌더링되는 유일한 디스플레이처럼 다른 컨트롤이 같은 사용자 정의 편집기를 호출하고 있습니다. 두 개의 다른 렌더링되지 않은? DataType.Text 및 DataType.Password를 제거하면 모든 표시 필드가 렌더링됩니까 ??

매우 이상한 행동 ...

누군가가 그 이유를 알고 있습니까?

+0

데이터 유형이 필요한 이유를 말할 수 있습니까? – Stefanvds

+0

나는 갈 수 없지만 갈 수는없는 이유는 무엇입니까? – mateo

답변

0

모델의 모든 속성에서 오류를 표시하려면 ValidationSummary가 필요합니다. 그렇지 않으면 모델의 각 속성에 대해 ValidationMessageFor가 필요합니다.

이 작동합니다 :

<%= Html.ValidationSummary() %> 

또는이 : 렌더링하는 데 사용되는 템플릿의 유형

<%= Html.ValidationMessageFor(model.UserName) %> 
<%= Html.ValidationMessageFor(model.Email) %> 
<%= Html.ValidationMessageFor(model.Password) %> 
+0

그는 검증 메시지에 관해 묻지 않았습니다. 부모보기에서 유효성 검사 요약이 없다는 것을 어떻게 알 수 있습니까? –

+0

이 질문은 3 시간 전에 변경되었으므로 7 개월 전 답변을 드리겠습니다. 혼란에 대해서는 언급 할 수 없습니다. –

+0

죄송합니다. 날짜가 알려지지 않았습니다. 그러나 최근 편집 내용은 다시 태그 일뿐 컨텐츠에 대한 변경 사항이 아닙니다. –

0

데이터 형식 컨트롤을. 텍스트 또는 비밀번호를 지정하면 MVC는 기본 템플릿을 선택하고 템플릿을 무시합니다.

이메일은 기본 제공 이메일 템플릿이 없기 때문에 작동하므로 문자열로 되돌아갑니다.

편집 : 나는 오해했다고 생각합니다. 당신은 그들이 전혀 렌더링하지 않는다고 말하고 있습니까? EditorTemplates 폴더에 빈 암호 및 텍스트 템플릿이 있습니까?