在MVC中提交后保留密码文本框值

use*_*694 2 passwords asp.net-mvc

我正在使用MVC应用程序.在我们的应用程序 我们有一个表单,用于获取用户的详细信息(客户端详细信息).示例,温和,名字,姓氏,密码等.提交后,在控制器本身,我们验证输入的MailID是否已经注册.如果已经注册了,请返回相同的视图并显示错误消息.但所有细节都显示在文本框中,但密码文本框变为空.我想要密码文本框,其值已经输入.

public string Email { get; set; }

    [Required(ErrorMessage = "FirstName is required")]
    public string FirstName { get; set; }

    public string LastName { get; set; }

    [Required(ErrorMessage = "Password is required")]
    [DataType(DataType.Password)]
    [StringLength(40, MinimumLength = 6,
    ErrorMessage = "Password must be between 6 and 12 characters.")]
    public string Password { get; set; }
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 6

这是由设计Html.PasswordHtml.PasswordFor帮助程序,不幸的是它无法更改,因为它是在帮助程序本身硬编码:

public static MvcHtmlString PasswordFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> expression, IDictionary<string, object> htmlAttributes)
{
    if (expression == null)
    {
        throw new ArgumentNullException("expression");
    }
    object obj2 = null;
    IDictionary<string, object> dictionary = htmlAttributes;
    return PasswordHelper(htmlHelper, ModelMetadata.FromLambdaExpression<TModel, TProperty>(expression, htmlHelper.ViewData), ExpressionHelper.GetExpressionText(expression), obj2, dictionary);
}
Run Code Online (Sandbox Code Playgroud)

object obj2 = null;在那边看到这个?

如果要更改此行为,可以使用TextBoxFor帮助程序生成密码字段:

@Html.TextBoxFor(x => x.Password, new { type = "password" })
Run Code Online (Sandbox Code Playgroud)