Asp.net multilanguage website validation

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

Answers (1)

nsevens
nsevens

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

Related Questions