密码字段自动填充星号

时间:2015-07-21 15:40:58

标签: asp.net asp.net-mvc

public static string searchEmail(string email)
{
    connectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
    SqlConnection conn = new SqlConnection(connectionString);
    {
        conn.Open();

        bool exists = false;

        using (SqlCommand comm = new SqlCommand("select count(*) from Member where email = @email", conn))
        {
            comm.Parameters.AddWithValue("@email", email);
            exists = (int)comm.ExecuteScalar() > 0;
        }

        if (exists)
        {
            return "Password has been reset, please check your email box!";
        }

        return null;
    }
}

这是我现在的观点,出于某种原因,当我进入我的页面注册用户时,“确认密码”文本框中充满了一堆星号。我无法想象星号表示一个值,因为我的模型中还没有添加任何内容。有人能告诉我如何让这个领域变得空洞吗?

2 个答案:

答案 0 :(得分:4)

这是您的浏览器为您填写保存的密码。如果要禁用该功能,则需要将autocomplete="off"应用于输入:

@Html.Password("ConfirmPassword", new { maxlength = "20", autocomplete = "off })

答案 1 :(得分:0)

那是因为Html.Password将第二个参数视为字段值。因此,您的代码@Html.Password("ConfirmPassword", new { maxlength = "20" })正在将'{ maxlength = "20" }'作为初始值传递给您的字段。

这是您的代码生成的HTML标记...注意值。

<input id="ConfirmPassword" 
       name="ConfirmPassword" 
       type="password" 
       value="{ maxlength = 20 }">

如果您在Chrome中更改HTML(使用开发人员工具),并删除type="password",则您会在字段中以明文形式查看值。

我建议使用Html.PasswordFor,这是您为其他密码字段所做的。它不需要为属性名称指定字符串。