ASP.Net MVC3 Html.PasswordFor не заполняется - PullRequest
46 голосов
/ 13 апреля 2011

На мой взгляд, у меня есть следующий элемент

  @Html.PasswordFor(model => model.Password)

Это экран, который создает / обновляет данные пользователя.Когда я пытаюсь обновить пользователя, это поле остается пустым.Когда я изменяю этот элемент на TextBox, он получает данные.Как мне заполнить поле Пароль?

Ответы [ 4 ]

137 голосов
/ 07 июля 2011

Как описано выше, лучше избегать этого по соображениям безопасности.если вы все еще хотите сохранить пароль, чтобы продолжить с того места, где не прошла текущая проверка, вы можете использовать помощник HTML с параметром атрибута html:

     Html.PasswordFor(x => x.Password, new { value = Model.Password})
39 голосов
/ 13 апреля 2011

Это как задумано. Пароли не заполняются, чтобы предотвратить случайную повторную отправку, а также чтобы на странице не было незашифрованных паролей. Очевидно, пароль был неправильным для начала, если вы отправляете обратно учетные данные.

В вашем случае вы можете создать расширение, которое будет вводить данные, или просто использовать HTML-ввод типа password.

5 голосов
/ 13 апреля 2011

MVC защищает вас от подобных действий по определенной причине. Вы не должны быть в состоянии сделать это, потому что пароль пользователя не должен храниться в незашифрованном и незашифрованном виде. Если ваша цель в конечном итоге закончится на http://plaintextoffenders.com/, вы можете сделать что-то вроде:

<input type="password" name="Password" id="Password" value="@Model.Password" />
2 голосов
/ 09 июня 2017

Я нашел этот выход. Мне нужен был мой пароль, показанный в форме:

@model User
@{
    @Html.Label(Model.Username, new { @class = "label" })
    @Html.TextBoxFor(Model => Model.Username, new { @class = "form-control" })

    @Html.Label(Model.Password, new { @class = "label" })
    @Html.TextBoxFor(Model => Model.Password, new { @class = "form-control make-pass" })
}

<script type="text/javascript">
    $(".make-pass").attr("type", "password");
</script>

Это сделает ваш тип ввода пароля без потери значения.

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