Asp.net mvc 4 如何使用@Html.EditorFor显示用户密码?

Asp.net mvc 4 如何使用@Html.EditorFor显示用户密码?,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,如何使用@Html.EditorFor显示用户密码? 另一种方法是使用@Html.PasswordFor。 哪个选项更合适,以及引入此编辑器帮助程序的任何具体原因。要使用@Html.EditorFor(m=>m.password)生成带有type=“password”的输入,您可以使用DataTypeAttribute [DataType(DataType.Password)] public string Password { get; set; } 或者(仅适用于MVC-5.1或更高版本),

如何使用@Html.EditorFor显示用户密码? 另一种方法是使用@Html.PasswordFor。
哪个选项更合适,以及引入此编辑器帮助程序的任何具体原因。

要使用
@Html.EditorFor(m=>m.password)
生成带有
type=“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
值(如果存在)或从models值填充输入。对于
EditorFor()
,如果由于错误而返回视图,则会将密码传递给客户端,并显示值(尽管在控件中显示为一系列点)。这只会增加黑客拦截请求并发现密码的风险。
PasswordFor()
方法不会将值传递给客户端,输入将为空,迫使用户重新输入密码(这是应该发生的)。

使用
@Html.EditorFor(m=>m.password)
生成一个带有
type=“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
值(如果存在)或从models值填充输入。对于
EditorFor()
,如果由于错误而返回视图,则会将密码传递给客户端,并显示值(尽管在控件中显示为一系列点)。这只会增加黑客拦截请求并发现密码的风险。
PasswordFor()
方法不会将值传递给客户端,输入将为空,迫使用户重新输入密码(这是应该发生的)。

问题的上下文是什么,您是否使用内置标识2.0?如果密码在默认情况下是加密的,那么一旦创建密码,您就无法查看它们。如果您使用自己的密码/登录系统,他们只需从表中调用数据,并将其放入控制器中页面的viewmodel中。然后在您的页面上的viewmodel的相关字段上调用@Html.Editorfor helper。您的问题的上下文是什么,您是否使用内置的identity 2.0?如果密码在默认情况下是加密的,那么一旦创建密码,您就无法查看它们。如果您使用自己的密码/登录系统,他们只需从表中调用数据,并将其放入控制器中页面的viewmodel中。然后在viewmodel的相关字段上调用页面上的@Html.Editorfor助手。