2009-12-27 4 views

Répondre

2

Peut-être qu'il me manque quelque chose. Mais vous devriez ajouter un itinéraire simple comme suit.

routes.MapRoute(
    "Default",            // Route name 
    "{culture}/{controller}/{action}/{id}",       // URL with parameters 
    new { culture = "en-US", controller = "Home", action = "Index", id = "" } // Parameter defaults 
); 

Ensuite, vous devez créer un filtre ActionFilter pour définir la culture sur demande.

#region [ Imports ] 

using System.Globalization; 
using System.Threading; 
using System.Web.Mvc; 

#endregion 

namespace SlideShowSample.Components 
{ 


    public class CultureAttribute : ActionFilterAttribute, IActionFilter 
    { 

     #region IActionFilter Members 

     void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext) { } 

     void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext) 
     { 
      CultureInfo culture = new CultureInfo(filterContext.RouteData.GetRequiredString("Culture")); 

      Thread.CurrentThread.CurrentCulture = culture; 
      Thread.CurrentThread.CurrentUICulture = culture; 
     } 

     #endregion 

    } 

} 

[Culture] 
public class HomeController { } 

Enfin dans la vue, utilisez ActionLink comme suit.

<%= Html.ActionLink("Foo", "Foo", new { Culture = "en-GB" }) %> 

L'extrait de code ci-dessus a fait la preuve d'un simple. Vous pouvez trouver plus d'informations here et un moyen simple d'utiliser les ressources dans la vue ASP.NET MVC, here.

+0

Nous vous remercions de votre aide. –

Questions connexes