2016-09-22 6 views
0

Ich habe mehrsprachige Website.Alle Arbeit great.Ich speichere meine Übersetzungen in. Resx-Dateien. Validierungsnachrichten werden jedoch nur in einer Sprache angezeigt. Mein Code istAsp.net mehrsprachige Website-Validierung

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) 
    { 
     //не реализован 
    } 
} 
+0

bitte mehr, wie Sie Ihre Validierungsnachricht zeigen liefern, Ihre Steuervalidierung – Jacky

Antwort

1

Sie können Ihre .resx Dateien verwenden Validierungsmeldungen auf Ihrem Modell zur Verfügung zu stellen:

[Required(
    ErrorMessageResourceType = typeof(ErrorMessages), 
    ErrorMessageResourceName = "UsernameIsRequiredMessage")] 
public string Username { get; set; }