我们如何使用@ Html.EditorFor来显示用户密码?

时间:2017-10-16 13:38:42

标签: asp.net-mvc-4 razor

我们如何使用@ Html.EditorFor来显示用户密码? 一种替代方法是使用@ Html.PasswordFor。 哪个选项更合适,以及介绍此编辑助手的任何具体原因。

1 个答案:

答案 0 :(得分:0)

要使用type="password"生成@Html.EditorFor(m => m.Password)的输入,您可以使用DataTypeAttribute

装饰您的属性
[DataType(DataType.Password)]
public string Password { get; set; }

或(仅适用于MVC-5.1或更高版本)您可以使用

添加属性
@Html.EditorFor(m => m.Password, new { htmlAttributes = new { type = "password" } })

建议的方法是使用@Html.PasswordFor(),因为它不会在请求中发送属性的值。除了HtmlHelper之外,生成表单控件的所有PasswordFor()方法都会填充ModelState值的输入(如果存在),或者填充模型值。在EditorFor()的情况下,如果由于错误而返回视图,则密码将传递给客户端并显示值(尽管是控件中的一系列点)。这只会增加黑客拦截请求和发现密码的风险。 PasswordFor()方法没有将值传递给客户端,输入将为空,强制用户重新输入密码(这应该是什么)。