如何更改默认错误消息"密码不正确".在MVC5的管理帐户?

mej*_*l57 6 c# asp.net asp.net-mvc-5

也许这是一个简单的问题,但我已经厌倦了寻找它.

我在AccountViewModels.cs中有这个(这是一个默认的MVC5项目).

 public class ManageUserViewModel
    {
        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "Current password")]
        public string OldPassword { get; set; }
...
Run Code Online (Sandbox Code Playgroud)

我知道这会使用Data Annotations,但我不知道如何在输入错误的OldPassword时更改默认错误消息,现在的默认错误消息是密码错误.我想换另一条消息,请帮助我.

jcr*_*z92 12

这很简单,不用担心,转到AccountController.cs中

 // POST: /Account/Manage
 [HttpPost]
 [ValidateAntiForgeryToken]
 public async Task<ActionResult> Manage(ManageUserViewModel model)
 {
Run Code Online (Sandbox Code Playgroud)

....

改变这个:

if (hasPassword)
{
     if (ModelState.IsValid)
     {
          IdentityResult result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword);
          if (result.Succeeded)
          {
               return RedirectToAction("Manage", new { Message = ManageMessageId.ChangePasswordSuccess });
          }
          else
          {
               AddErrors(result);
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

为了这:

if (hasPassword)
{
     if (ModelState.IsValid)
     {
          IdentityResult result = await UserManager.ChangePasswordAsync(User.Identity.GetUserId(), model.OldPassword, model.NewPassword);
          if (result.Succeeded)
          {
               return RedirectToAction("Manage", new { Message = ManageMessageId.ChangePasswordSuccess });
          }
          else
          {
               ModelState.AddModelError(string.Empty, "Whatever message do you want to say");
          }
     }
}
Run Code Online (Sandbox Code Playgroud)

而已!

编辑:代码审查.