MVC отключить EditFor для автоматического заполнения - PullRequest
2 голосов
/ 27 августа 2011

Я недавно начал использовать MVC и наткнулся на проблему.

Итак, у меня есть модель пользователя, которая содержит некоторые переменные, такие как ID, имя пользователя, пароль, и все они соответствуют таблице базы данных, которую MVC полностью обрабатывает.

Теперь у меня есть страница редактирования пароля с текстовым полем пароля и текстовым полем подтверждения пароля, например:

    <div class="editor-label">
        @Html.LabelFor(model => model.Password)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Password)
        @Html.ValidationMessageFor(model => model.Password)
        @Html.Password("passwordConfirmation")
    </div>

Итак, все отлично, у него есть 2 текстовых поля рядом с друг другом.

Теперь вот моя проблема: я не хочу, чтобы первое текстовое поле пароля автоматически заполнялось данными из переменной «Пароль», которая находится в модели, передаваемой вместе со страницей.

Конечно, есть "хакерский" способ сделать это, когда вы просто создаете обычный ящик для пароля, а затем получаете его значение позже (@ Html.Password ("password")),
но я хочу знать, есть ли официальный способ сказать MVC НЕ автоматически заполнять поле текста / пароля.

1 Ответ

1 голос
/ 27 августа 2011

Вы можете попробовать применить атрибут autocomplete="off" к полю вашего пароля:

@Html.PasswordFor(x => x.PasswordConfirmation, new { autocomplete = "off" })

Обратите внимание, что это нестандартный атрибут и может нарушить проверку HTML, но большинство браузеров его уважают.

Также вам следует убедиться, что вы не устанавливаете какое-либо значение в своей модели представления для свойства PasswordConfirmation внутри действия контроллера.

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