我重新表达了我之前提出的另一个问题。
我有一个基本的C# Asp.net MVC 5应用程序。我通过以下代码创建一个帐户(由Vs 2013中的模板提供)
protected async Task<bool> CreateAccountAndAddRoleAsync(UserManager<ApplicationUser> userManager, ApplicationUser user, string password, string role)
{
var result = await userManager.CreateAsync(user, password);
if (result.Succeeded)
{
try
{
var roleResult = await userManager.AddToRoleAsync(user.Id, role);
if (roleResult.Succeeded)
{
//await SignInAsync(userManager, user, isPersistent: false);
return true;
}
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
}
AddErrors(result);
return false;
}
protected void AddErrors(IdentityResult result)
{
foreach (var error in result.Errors)
{
ModelState.AddModelError("", error);
}
}问题是当用户名已经被使用(或任何其他错误消息)时,这些消息都是英文的。比如
名字xxx已经被取走了
而不是
L‘xxx est déjàutilisé
问题在于,该消息是由框架提供的
var结果=等待userManager.CreateAsync(用户,密码);
AddErrors(result);枚举消息(英文)以向用户显示它们。我如何修改消息?
我在webconfig文件中用
<globalization uiCulture="fr-FR" culture="fr-FR" />但我还有一条英语留言。事实上,真正的问题是,即使我想要另一条英文消息,也无法更改框架提供的消息。
有人知道如何更改IdentityResult提供的消息吗?
发布于 2015-09-17 12:19:12
不要忘记从nuget安装语言包,例如:
Install-Package Microsoft.AspNet.Identity.Core.ruhttps://stackoverflow.com/questions/26162712
复制相似问题