MVC禁用EditorFor自动填充

时间:2011-08-26 21:28:11

标签: c# asp.net-mvc-3

我最近开始使用MVC,偶然发现了一个问题。

所以,我有一个用户模型,其中包含一些变量,如ID,UserName,Password,它们都对应一个数据库表,MVC完全处理。

我现在有一个密码编辑页面,一个密码文本框和一个确认密码文本框,如下所示:

    <div class="editor-label">
        @Html.LabelFor(model => model.Password)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.Password)
        @Html.ValidationMessageFor(model => model.Password)
        @Html.Password("passwordConfirmation")
    </div>

所以,这很好,它有两个文本框紧挨着。

现在我的问题是:我不希望第一个密码文本框自动填充与页面一起传递的模型中的“密码”变量中的数据。

当然,这是“hackish”的做法,你只需创建一个常规密码框,然后再获取它的价值(@ Html.Password(“password”)),
但是我想知道是否有官方的方式告诉MVC不要自动填写文本/密码框。

1 个答案:

答案 0 :(得分:1)

您可以尝试将autocomplete="off"属性应用于您的密码字段:

@Html.PasswordFor(x => x.PasswordConfirmation, new { autocomplete = "off" })

请注意,这是一个非标准属性,可能会破坏HTML验证,但大多数浏览器都会尊重它。

此外,您应确保未在控制器操作中的PasswordConfirmation属性的视图模型上设置任何值。