ASP.Net MVC3 Html.PasswordFor不填充
在我看来,我有以下要素
@Html.PasswordFor(model => model.Password)
这是在创build/更新用户详细信息的屏幕上。 当我尝试更新用户时,该字段保持空白。 当我将此元素更改为TextBoxFor时,它将获取数据。 我如何获得填充密码字段。
这是devise的。 未填写密码以防止意外重新提交,并防止页面包含未encryption的密码。 显然,密码错误的开始,如果你张贴回来的凭据。
在你的情况下,你可以创build一个input数据的扩展,或者只使用一个types为password的HTMLinput。
如上所述,为了安全起见,最好避免这样做。 如果您仍想保留密码,以便从当前validation失败的位置继续,则可以使用带有html属性参数的HTML助手:
Html.PasswordFor(x => x.Password, new { value = Model.Password})
MVC保护你不会做这样的事情。 你实际上不应该这样做,因为用户密码不应该存储未encryption和非哈希。 如果你的目标是结束http://plaintextoffenders.com/虽然,你可以做这样的事情:;
<input type="password" name="Password" id="Password" value="@Model.Password" />
我发现这个工作。 我需要我的密码显示在窗体中:
@model User @{ @Html.Label(Model.Username, new { @class = "label" }) @Html.TextBoxFor(Model => Model.Username, new { @class = "form-control" }) @Html.Label(Model.Password, new { @class = "label" }) @Html.TextBoxFor(Model => Model.Password, new { @class = "form-control make-pass" }) } <script type="text/javascript"> $(".make-pass").attr("type", "password"); </script>
这将使您的input密码,而不会丢失的价值。
- 使用Razor的Html.RenderPartial()语法
- 使用Razor声明视图的MVC HtmlHelper扩展
- 从ASP.NET MVC 3开始,MicrosoftAjax.js,MicrosoftMvcAjax.js和MicrosoftMvcValidation.js是否被废弃?
- MVC 3 jQueryvalidation/数字/十进制字段的全球化
- 有什么好理由使用FormCollection而不是ViewModel?
- ASP.NET MVC 3 Razor:将JavaScript文件包含在head标签中
- 我怎样才能加载视图内的部分视图
- MVC 3 – Ajax.BeginForm做了一个完整的回发
- 将字节数组转换为图像并在剃刀视图中显示