我正在使用MVC应用程序。在我们的应用程序我们有一个表单,用于获取用户的详细信息(客户端详细信息)。示例,温和,名字,姓氏,密码等。 提交后,在Controller本身,我们验证输入的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; }
答案 0 :(得分:6)
这是Html.Password
和Html.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);
}
在那边看到object obj2 = null;
?
如果您想更改此行为,可以使用TextBoxFor
帮助程序生成密码字段:
@Html.TextBoxFor(x => x.Password, new { type = "password" })