首页 > 解决方案 > 无法正确呈现 @Html.PasswordFor

问题描述

我们最近将框架从 MVC 3 切换到 MVC 5。由于我不知道它无法呈现密码输入字段的原因。这是代码

这是型号代码

[DataType(DataType.Password)]
[Display(Name = "New User Password")]
[MinLength(8, ErrorMessage = "Password length must at least 8 characters long.")]
[Required]
public string Password { get; set; }

这是查看代码

@Html.PasswordFor(model => model.Password, new { id = "tbPassword", @class = "validateMe"})

这是呈现的 HTML

<input class="validateMe" 
       data-val="true" 
       data-val-minlength="Password length must at least 8 characters long." 
       data-val-minlength-min="8" 
       data-val-required="The New User Password field is required." 
       id="tbPassword" 
       name="User.Password" 
       type="password" 
       style=" background-repeat: no-repeat; background-attachment: scroll; 
               background-size: 16px 18px; background-position: 98% 50%;">

这是控制台中的错误。

在此处输入图像描述

我尝试的是删除元素的 name 属性,但之后提交不再起作用。

标签: c#asp.net-mvc

解决方案


我刚刚测试了创建一个新的 ASP.NET MVC 5 项目以确认我的评论。这些是 Visual Studio (2017) 自动下载的依赖项:

  • jQuery 3.3.1
  • jQuery 验证 1.17.0
  • jQuery 不显眼的验证 3.2.4

因此,您的包裹非常旧。更新它们以使内置库正常工作。


推荐阅读