Reputation: 23
I did multilanguage website.All work great.I save my translates in .resx files. But validation message show only in one languge. My code is
public class CultureAttribute : FilterAttribute, IActionFilter
{
public void OnActionExecuted(ActionExecutedContext filterContext)
{
string cultureName = null;
// Получаем куки из контекста, которые могут содержать установленную культуру
HttpCookie cultureCookie = filterContext.HttpContext.Request.Cookies["lang"];
if (cultureCookie != null)
cultureName = cultureCookie.Value;
else
cultureName = "ru";
// Список культур
List<string> cultures = new List<string>() { "ru", "en" };
if (!cultures.Contains(cultureName))
{
cultureName = "ru";
}
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cultureName);
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultureName);
}
public void OnActionExecuting(ActionExecutingContext filterContext)
{
//не реализован
}
}
Upvotes: 0
Views: 31
Reputation: 2835
You can use your .resx
files to provide validation messages on your model:
[Required(
ErrorMessageResourceType = typeof(ErrorMessages),
ErrorMessageResourceName = "UsernameIsRequiredMessage")]
public string Username { get; set; }
Upvotes: 1