创建密码字段@ html.TextBoxFor

Kin*_*her 12 asp.net asp.net-mvc razor

模型类

[Required(ErrorMessage = "Pass word is required")]
//[ValidatePasswordLength]
[DataType(DataType.Password)]
//[Display(Name = "Password")]
public string Password { get; set; }
Run Code Online (Sandbox Code Playgroud)

视图

<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>
Run Code Online (Sandbox Code Playgroud)

我google了它.我发现使用@html.Editor而不是@ html.TextBoxFor但我必须为文本框应用css.

我用过 @Html.TextBoxFor(model => model.Password, new {@class="form-control",placeholder="Password" })但css没有应用.我如何实现这一目标?

GSe*_*erg 29

如果您的MVC版本足够新,那么

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

除此以外

@Html.PasswordFor(model => model.Password, new {@class="form-control", placeholder="Password"})
Run Code Online (Sandbox Code Playgroud)


小智 13

您仍然可以使用@ Html.TextBoxFor:

@Html.TextBoxFor(model => model.Password, new {@class="form-control", placeholder="Password", @type = "password" })
Run Code Online (Sandbox Code Playgroud)


Nat*_*pan 9

我也遇到了同样的问题并且已经使用了下面的代码,但我不知道为什么它不起作用

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

但后来我找到了要添加type ="password"到上面代码中的解决方案

然后,代码现在

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

更新 我发现另一种解决方法是将数据注释添加到LoginViewModel中的Password属性

[DataType(DataType.Password)]
public String Password { get; set; }
Run Code Online (Sandbox Code Playgroud)

并在视图页面中输入此代码

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