删除MVC中的浏览器自动完成功能

时间:2012-02-24 08:49:55

标签: c# html asp.net-mvc asp.net-mvc-3 model-view-controller

我目前正在尝试删除用户浏览器完成的表单自动完成功能,这可能会导致一些关键行为,因为它填充了密码字段。我已经在我的所有文本框字段中添加了autocompletion属性,但是当我尝试使用firefox时,它仍会将我当前的登录信息加载到字段中。

有谁知道如何解决这个问题?

编辑:由于不清楚,我已经添加了aucompletion属性,其值设置为“off”。

4 个答案:

答案 0 :(得分:18)

html中有autocomplete=off属性。

在此页面的右上方搜索框中使用它,检查您将看到的html:

<input autocomplete=​"off" name=​"q" class=​"textbox" placeholder=​"search" ..... />

请参阅此MDN文章:https://developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletion

在MVC中,您可以在表单或文本框中实现此功能:

Html.BeginForm(
    action, controller, FormMethod.Post, new {autocomplete="off"})

OR

Html.TextBoxFor(model => model.EmployerNumber, new {autocomplete="off"})

答案 1 :(得分:1)

如果您选中HERE,则可以在表单上设置autocomplete="off"

答案 2 :(得分:0)

您可以随机化文本框的id和name属性 - 这会使浏览器自动完成功能无效。

我的实施

在视图中:

<%
    var guidString = Guid.NewGuid().ToString();
%>
<%=Html.TextBox(guidString, String.Empty)%>
<%=Html.Hidden("NameGuid", guidString) %>
控制器中的

string userName = Request[model.NameGuid];
...

答案 3 :(得分:0)

HTML5具有表单/输入元素的附加语法,称为autocomplete =“off”。 见http://www.w3schools.com/html5/att_form_autocomplete.asp