web-dev-qa-db-fra.com

Créer un champ de mot de passe @ html.TextBoxFor

Classe de modèle

[Required(ErrorMessage = "Pass Word is required")]
//[ValidatePasswordLength]
[DataType(DataType.Password)]
//[Display(Name = "Password")]
public string Password { get; set; }

vue

<div class="editor-label">
@Html.LabelFor(model => model.Password)
</div>
<div class="editor-field">
@Html.TextBoxFor(model => model.Password, new {@class="form-control",placeholder="Password" })
@Html.ValidationMessageFor(model => model.Password)

</div>

J'ai trouvé Google pour utiliser @html.Editor au lieu de @ html.TextBoxFor mais je dois appliquer les CSS pour textbox.

J'ai utilisé @Html.TextBoxFor(model => model.Password, new {@class="form-control",placeholder="Password" }) mais css pas appliqué . Comment puis-je y parvenir?

10
King_Fisher

Si votre version de MVC est suffisamment nouvelle, alors

@Html.EditorFor(model => model.Password, new { htmlAttributes = new {@class="form-control", placeholder="Password"}})

Autrement

@Html.PasswordFor(model => model.Password, new {@class="form-control", placeholder="Password"})
27
GSerg

Vous pouvez toujours utiliser @ Html.TextBoxFor:

@Html.TextBoxFor(model => model.Password, new {@class="form-control", placeholder="Password", @type = "password" })
13
Tekdream

J'ai également eu le même problème et déjà utilisé le code ci-dessous mais je ne sais pas pourquoi cela n'a pas fonctionné

@Html.EditorFor(model => model.Password, new { htmlAttributes = new {@class="form-control", placeholder="Password"}})

mais alors j'ai trouvé la solution qui consiste à ajouter type ="password" dans le code ci-dessus 

alors, le code est maintenant 

@Html.EditorFor(model => model.Password, new { htmlAttributes = new {@class="form-control", placeholder="Password", Type="password"}})

update J'ai trouvé un autre moyen de résoudre ce problème, c'est d'ajouter des annotations de données à la propriété Password dans LoginViewModel. 

[DataType(DataType.Password)]
public String Password { get; set; }

et dans la page de vue, tapez ce code

    @Html.EditorFor(model => model.Password, new { htmlAttributes = new {@class="form-control", placeholder="Password"}})
7

Vous pouvez essayer d'utiliser html input type

@Html.TextBoxFor(model => model.Password, new {@class="form-control", placeholder="Password", @type = "password" })
0
Tejinder Singh