autocomplete = off不在mvc 5中工作

时间:2015-02-02 05:09:44

标签: asp.net-mvc autocomplete asp.net-mvc-5

我正在尝试不在浏览器中生成自动完成功能,因为我正在尝试这个

@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");

参考以下网站

我仍然想知道我的代码有什么问题?你的建议对我意义重大。

3 个答案:

答案 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" })