字段密码返回空以在编辑模式下查看

时间:2014-05-08 13:27:24

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor

我有MVC5应用程序,在创建视图中我有用户名和密码字段。

我将值放在用户和密码字段中,当我进入编辑模式时,我只在文本框中看到用户值

并且密码字段为空,为什么?

当我调试代码时,我看到在编辑结束时(返回View(UserPass);)我得到了带有值的对象,而不是调用视图(razor)而我看不到该值传递文本框......

知道用户存在的原因和密码不是吗? 我只是想在编辑模式中使用星号字段 ...

在编辑和创建视图中,我使用:

<div class="form-group">
    @Html.LabelFor(model => model.Password, new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.PasswordFor(model => model.Password)
        @Html.ValidationMessageFor(model => model.Password)
    </div>
</div>

3 个答案:

答案 0 :(得分:4)

密码不会预先填充,以防止意外提交,也不会使用未加密的密码。

检查以下链接。

ASP.Net MVC3 Html.PasswordFor does not populate

答案 1 :(得分:3)

使用此:

@Html.PasswordFor(model => model.Password,new{@Value=Model.Password})

请注意Value:v应为大写

答案 2 :(得分:1)

将密码值渲染到html源中是一个巨大的安全风险。它可以防止您泄露密码。否则,有人可以查看页面源并查看:

<input type="password" value="password123" />

我建议您执行以下操作:

@Html.PasswordFor(model => model.Password, new { placeholder = "********" })

这会产生一些视觉效果。文本框中的星号将在用户开始输入实际值时消失。它并不是所有浏览器都支持,而是它的东西。