2012-02-24 38 views
7

Tôi hiện đang cố xóa tự động hoàn thành biểu mẫu do trình duyệt của người dùng thực hiện có thể gây ra một số hành vi quan trọng vì nó điền vào trường mật khẩu. Tôi đã thêm thuộc tính autocompletion vào tất cả các hộp văn bản của mình nhưng khi tôi thử với firefox nó vẫn tải thông tin đăng nhập hiện tại của tôi vào các trường.Xóa tự động hoàn thành trình duyệt trong MVC

Bạn có tìm cách giải quyết vấn đề này không?

Xin cảm ơn trước.

EDIT: Vì nó không rõ ràng, tôi đã thêm thuộc tính aucompletion với giá trị được đặt thành "off".

+0

Tôi đã cập nhật câu trả lời của mình :) – gideon

Trả lời

16

Có thuộc tính autocomplete=off bằng html.

Nó được sử dụng trong hộp tìm kiếm phía trên bên phải trên trang này rất, kiểm tra việc html bạn sẽ thấy:

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

Xem bài viết MDN này: https://developer.mozilla.org/en/How_to_Turn_Off_Form_Autocompletion

Trong MVC bạn sẽ thực hiện điều này tại hình thức hoặc cho một hộp như vậy:

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

hOẶC

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

Việc thêm vào biểu mẫu đôi khi có thể hữu ích nếu việc thêm vào các đầu vào không hoạt động (nhìn bạn, IE) – stuartdotnet

0

Bạn có thể ngẫu nhiên hóa thuộc tính id và tên của hộp văn bản - điều này sẽ làm cho chức năng tự động hoàn thành của trình duyệt không hoạt động.

thực hiện My

Theo quan điểm:

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

trong Bộ điều khiển:

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

Rất tiếc, bạn đã nhanh chóng! Tôi vừa thêm cùng một câu trả lời! – Wizard79

1

Nếu bạn kiểm tra HERE, thiết autocomplete="off" về hình thức nên làm các trick.

+0

Nếu bạn kiểm tra hộp tìm kiếm StackOverflow, bạn sẽ thấy chúng đạt được điều này theo cùng một cách. –

+0

yep! Đó là những gì tôi đã nói :) – gideon

+0

'

@Html.EditorFor(model => model.HashedPassword, new { autocomplete = "off" }) @Html.ValidationMessageFor(model => model.HashedPassword)
' Tôi đã đặt thuộc tính tự động hoàn thành, nhưng khi tôi kiểm tra mã nguồn html của tôi, nó không có thuộc tính trong đánh dấu đầu vào. – Oflocet

Các vấn đề liên quan