2014-07-22 2 views
5

Forse questa è una domanda facile ma sono stanco di cercarlo.Come cambiare il messaggio di errore predefinito "Password errata". nell'account Gestisci MVC5?

Ho questo in AccountViewModels.cs (questo è un progetto MVC5 predefinito).

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

So che questo utilizza annotazioni dati dietro, ma non so come cambiare il messaggio di errore predefinito quando entro nella corretta PasswordPrecedente, il messaggio di errore predefinito in questo momento è la tua password. e voglio cambiarlo per un altro messaggio, per favore aiutatemi.

risposta

11

Questo è semplice non preoccupatevi, andare al AccountController.cs nel

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

....

Modifica questo:

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); 
      } 
    } 
} 

Per questo:

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"); 
      } 
    } 
} 

Questo è tutto!

MODIFICA: revisione del codice.