ASP.Net MVC3 Html.PasswordFor没有填充

时间:2011-04-12 23:37:10

标签: asp.net-mvc-3 razor

在我看来,我有以下元素

  @Html.PasswordFor(model => model.Password)

这是在创建/更新用户详细信息的屏幕上。当我尝试更新用户时,此字段保持空白。当我将此元素更改为TextBoxFor时,它获取数据。如何填写密码字段。

6 个答案:

答案 0 :(得分:137)

如上所述,出于安全原因,最好避免这样做。如果您仍希望保留密码以便从当前验证失败的地方继续,则可以使用带有html属性参数的HTML帮助程序:

     Html.PasswordFor(x => x.Password, new { value = Model.Password})

答案 1 :(得分:39)

这是按照设计的。密码未填写以防止意外重新提交,并防止页面包含未加密的密码。如果您要回发凭证,显然密码错误。

在您的情况下,您可以创建一个输入数据的扩展名,或者只使用类型为password的HTML输入。

答案 2 :(得分:5)

MVC保护您不会因此而做这样的事情。您实际上不应该这样做,因为用户密码不应以未加密和未加密的方式存储。如果你的目标是尽快结束http://plaintextoffenders.com/,你可以这样做:

<input type="password" name="Password" id="Password" value="@Model.Password" />

答案 3 :(得分:2)

我找到了这个工作的声音。我需要以表格中显示的密码:

window.print();

这将使您输入密码类型而不会丢失值。

答案 4 :(得分:0)

如前所述,它是设计使然。但这可能是错误的。我们刚刚遇到了一个新用户,他在页面刷新后刚添加密码时对空密码感到困惑。因此,一个简单的解决方法是将标签“ Password”更改为“ New password”。现在很清楚为什么此输入框始终为空。

答案 5 :(得分:0)

如果您正在使用 asp-for属性,则还可以执行以下操作:

” *“)):” Password“)” asp-for =“密码”>