我正在尝试不在浏览器中生成自动完成功能,因为我正在尝试这个
@Html.TextBoxFor(
model => model.UserName,
new { @class = "form-control", autocomplete = "off" })
@Html.ValidationMessageFor(m => m.UserName, "", new { @class = "text-danger" })
生成这样的HTML
<input type="text" value="" name="UserName" id="UserName" data-val-required="User name is required." data-val="true" class="form-control" autocomplete="off">
在其他视图中,我使用相同的方法并且工作正常。但在登录视图中autocomplete="off"
无效。为此,我在控制器中有清晰的模型状态
ModelState.Remove("UserName");
参考以下网站
我仍然想知道我的代码有什么问题?你的建议对我意义重大。
答案 0 :(得分:2)
根据Bharat的答案,实际上问题不在于自动完成, 问题来自浏览器保存的登录信息。
但我们可以克服这一点,而无需清除浏览器的已保存密码。
根据我的意图,即使我们执行autocomplete="off"
,所有执行类似职责的浏览器也会被自动粘贴,密码之前的字段被假定为用户名并且它使用最后登录的数据。
解决方案是设置密码的字段autocomplete="new-password"
,但这仅适用于HTML5或以上支持的浏览器...
答案 1 :(得分:0)
实际上问题不在于自动完成,
问题来自浏览器保存的登录信息
当这些问题出现在我身边时,我从浏览器中删除了保存的登录信息
它解决了我的问题。
访问https://support.mozilla.org/en-US/questions/962690
https://support.google.com/chrome/answer/95582?hl=en
答案 2 :(得分:0)
在MVC 5中,它会自动完成关闭工作
@Html.TextBoxFor(model => model.UserName,
new { @placeholder = "UserName", @id = "txtUserName", @autocomplete = "new-user" })
@Html.PasswordFor(model => model.Password,
new {@placeholder = "Password", @id = "txtPassword", @autocomplete = "new-password" })