2010-08-23 3 views
2

нормально я уже определил общий редактор для строки вроде следующегожерех 2 EditorFor MVC странное поведение

<% @ Control Language = "C#" наследующих = "System.Web.Mvc.ViewUserControl" %>
<% = 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; } 

Единственный показатель, который визуализируется это поле E-mail. Два других не отображаются? Если я удаляю 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

управления DATATYPE какой тип шаблона используется для визуализации. Когда вы указываете текст или пароль, MVC будет выбирать шаблоны по умолчанию для тех, кто их встроил, и игнорировать ваш шаблон.

Email работает, потому что нет встроенного шаблона электронной почты и, следовательно, он возвращается к строке.

EDIT: Я думаю, что я неправильно понял. Вы говорите, что они вообще не отдают? У вас есть пустые шаблоны «Пароль» и «Текст» в папке EditorTemplates?

Смежные вопросы