我们如何使用@ Html.EditorFor来显示用户密码? 一种替代方法是使用@ Html.PasswordFor。 哪个选项更合适,以及介绍此编辑助手的任何具体原因。
答案 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()
方法没有将值传递给客户端,输入将为空,强制用户重新输入密码(这应该是什么)。