Модель не применяется DataType.Password - PullRequest
12 голосов
/ 18 мая 2011

Вместо непосредственного использования объекта, в простом Razor View у меня есть форма, использующая в качестве + s model объект-декоратор.

public class GlobalAccount
{
    public GlobalAccount()
    {
        this.TestService = new TestServiceModel();
    }

    public TestServiceModel TestService { get; set; }
}

beeing TestServiceModel представлен как

public class TestServiceModel
{
    [Required]
    [Display(Name = "Endpoint (url of your service like http://mydomain/remote/)")]
    public string Endpoint { get; set; }

    [Required]
    [Display(Name = "System username")]
    public string UserName { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "System password")]
    public string Password { get; set; }
}

Примечание Password собственность, украшенная DataType.Password

и в Partial Razor view у меня есть вызов к этому объекту

@model OnlineServices.Administration.Models.GlobalAccount
...
@Html.TextBoxFor(model => model.TestService.Password, new { size = "30" })

проблема в том, что в html я получаю type="text" вместо text="password"

Вы можете увидеть в этом изображении весь поток:

enter image description here

Что я пропускаю здесь?

Ответы [ 2 ]

21 голосов
/ 18 мая 2011

Вы должны использовать Html.Password, или даже лучше использовать Html.EditorFor, который будет читать DataType.Password и выводить ввод пароля типа для вас.

Html.TextBoxFor - это ввод текста, а не ввод пароля.

14 голосов
/ 12 июля 2011

В дополнение к ответу Киерона, в MVC3 на самом деле НЕ лучше использовать Html.EditorFor для ввода пароля, так как по какой-то причине, если сервер возвращает страницу (скажем, неверное сочетание пароля и имени пользователя), тогда с EditorFor, пароль передается обратно на страницу (и при просмотре источника пароль виден)

При использовании Html.Password для пароля не передается обратно клиенту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...