Подтвердить что ты не робот

Текстовые поля пароля MS MVC Masking

У меня создалось впечатление, что с помощью аннотации, подобной этой:

<Required()>
<DisplayName("Choose a Password:")>
<ValidatePasswordLength()>
<DataType(DataType.Password)>
Public Property Password As String

Создает маскированное поле при использовании в представлении:

<%: Html.TextBoxFor(Function(model) model.Password) %>
<%: Html.ValidationMessageFor(Function(model) model.Password) %>

Однако это отображается без типа = "password"

Что такое "DataType.Password", если это не так?

4b9b3361

Ответ 1

Вы используете Html.TextBoxFor, который всегда выводит тег <input type="text"> в получившемся HTML. Если вы хотите, чтобы аннотация для DataType.Password была автоматически выполнена, вы должны использовать Html.EditorFor. Вы можете больше узнать о шаблонах редакторов и о том, как их настроить здесь: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html

Ответ 2

TextBoxFor отменяет вашу аннотацию, поскольку она указывает на четкий ввод текста. Как отметил marcind, EditorFor отмечает аннотацию, или вы можете использовать PasswordFor для этого поля.