【问题标题】:Field password returned empty to view in edit mode字段密码返回空以在编辑模式下查看
【发布时间】:2014-05-08 13:27:24
【问题描述】:

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

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

密码字段为空,为什么?

当我调试代码时,我看到在编辑结束时(return View(UserPass);)我得到了带有值的对象,然后它调用了视图(剃须刀),我没有在传递文本框...

知道为什么用户存在而密码不存在吗? 我只希望它是在编辑模式下带有星号的字段...

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

<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>

【问题讨论】:

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


【解决方案1】:

密码未预先填充以防止意外提交,也没有未加密的密码。

检查下面的链接。

ASP.Net MVC3 Html.PasswordFor does not populate

【讨论】:

    【解决方案2】:

    使用这个:

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

    注意Value:v应该是大写的

    【讨论】:

    • 非常简单的解决方案,想要显示密码已经填写,无论安全问题如何。
    【解决方案3】:

    将密码值呈现到 html 源代码中存在巨大的安全风险。它可以防止您泄露密码。否则有人可以查看页面源代码并看到:

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

    我建议您执行以下操作:

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

    这将在文本框中放置一些“视觉”星号,当用户开始输入实际值时这些星号会消失。它不是所有浏览器都支持的,但它的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 2013-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-29
      • 1970-01-01
      相关资源
      最近更新 更多