Текстовые поля пароля 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", если это не так?
Ответы
Ответ 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
для этого поля.