Désactiver la saisie semi-automatique dans la zone de texte d’assistance HTML dans MVC

D’accord,

En temps normal, asp.net utilise un thème pour désactiver la saisie semi-automatique de toutes les zones de texte d’un site entier. Cependant, je ne peux pas le faire sur MVC car rien dans les fichiers .skin du thème ne semble fonctionner.

J’ai ceci dans mon fichier .skin:

 

Cependant, cela ne rend pas du tout, bien sûr, car ce n’est pas ainsi que fonctionne MVC. Quoi qu’il en soit, y a-t-il un moyen de faire en sorte que ce genre de chose fonctionne? Le site que j’essaie de faire est trop volumineux pour justifier de modifier chaque zone de texte ou de créer un nouvel assistant HTML pour résoudre le problème?

Quelqu’un a une idée?

MVC ne dispose pas de contrôles serveur similaires à ASP.NET. Par conséquent, aucun traitement de serveur n’est effectué sur vos contrôles. Ils sont rendus au client exactement comme vous les tapez. Les thèmes ne sont pas utilisés par MVC, car ils s’appliquent aux contrôles serveur ASP.NET et vous ne les utiliserez pas ici. Cela dit, les helpers HTML sont traités par le serveur lors du rendu de la vue. Vous devrez append autocomplete = “off” au contrôle HTML actuel à l’aide de la surcharge de propriétés html.

 @Html.TextBoxFor(x => x.Something, new { autocomplete="off" } ) 

Ou quel que soit l’atsortingbut HTML réel qui est rendu lorsque vous définissez autocomplete = “off” dans le contrôle serveur asp.net.

EDIT: Une option pour affecter toutes les zones de texte serait de créer votre propre méthode d’assistance HTML. Il suffit de créer une méthode d’extension comme ceci:

 using System.Web.Mvc; using System.Web.Mvc.Html; public static MvcHtmlSsortingng NoAutoCompleteTextBoxFor(this HtmlHelper html, Expression> expression) { return html.TextBoxFor(expression, new { autocomplete="off" }); } 

Ensuite, vous pouvez simplement faire:

 Html.NoAutoCompleteTextBoxFor(x => x.Something) 

Bravo pour les réponses les gars, cependant, ces solutions nécessiteraient vraiment que je modifie tous les formulaires sur le site. Si vous voyiez l’utilisation de MVC, nous comprendrions.

Quoi qu’il en soit, j’ai opté pour cette façon, dans la page maître, j’ai ajouté ce script:

  

Je sais que si javascript est désactivé, cela ne sert à rien. Pour être honnête, si javascript est désactivé, les utilisateurs ne pourront pas utiliser la moitié du site.

Autant que je sache, vous ne pouvez pas effectuer la autocomplete = offautocomplete = off avec css; il doit s’agir d’un atsortingbut html. Par conséquent, rien ne peut affecter toutes les zones de texte. Une chose que vous pouvez faire est d’append l’atsortingbut au formulaire comme ceci (il s’adressera à tous les champs de texte du formulaire actuel).

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

ou créez une méthode d’extension d’assistance personnalisée similaire à BeginForm qui ajoute cet atsortingbut html en interne.

Ajoutez-le simplement à la fin du document _Layout.cshtml

  
 @Html.TextBox("Address","",new { @class = "classname", autocomplete = "off" })