Comment intégrer des ressources dans un lien ActionLink? Je veux que le titre affiche une traduction lorsque je navigue vers un itinéraire où j'injecte la langue de la culture. Mais je ne sais pas comment obtenir la traduction dans ActionLink.Comment utiliser les ressources avec ActionLink?
0
A
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.
Nous vous remercions de votre aide. –