我最近开始使用MVC,偶然发现了一个问题。
所以,我有一个用户模型,其中包含一些变量,如ID,UserName,Password,它们都对应一个数据库表,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>
所以,这很好,它有两个文本框紧挨着。
现在我的问题是:我不希望第一个密码文本框自动填充与页面一起传递的模型中的“密码”变量中的数据。
当然,这是“hackish”的做法,你只需创建一个常规密码框,然后再获取它的价值(@ Html.Password(“password”)),
但是我想知道是否有官方的方式告诉MVC不要自动填写文本/密码框。
答案 0 :(得分:1)
您可以尝试将autocomplete="off"
属性应用于您的密码字段:
@Html.PasswordFor(x => x.PasswordConfirmation, new { autocomplete = "off" })
请注意,这是一个非标准属性,可能会破坏HTML验证,但大多数浏览器都会尊重它。
此外,您应确保未在控制器操作中的PasswordConfirmation
属性的视图模型上设置任何值。