【问题标题】:How to use resources with ActionLink?如何通过 ActionLink 使用资源?
【发布时间】:2009-12-27 08:38:12
【问题描述】:

如何在 ActionLink 中整合资源?当我导航到注入文化语言的路线时,我希望标题显示翻译。但我不知道如何将翻译转换为 ActionLink。

【问题讨论】:

    标签: asp.net-mvc globalization


    【解决方案1】:

    也许我错过了什么。但是你应该添加一个简单的路由如下。

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

    之后,您必须创建一个 ActionFilter 以根据要求设置文化。

    #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 { }
    

    最后在视图中,使用 ActionLink 如下。

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

    上面的代码 sn -p 演示了一个简单的代码。您可以找到更多信息here 以及在 ASP.NET MVC 视图中使用资源的简单方法,here

    【讨论】:

      猜你喜欢
      • 2022-12-03
      • 1970-01-01
      • 2014-01-12
      • 2017-10-15
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 2013-05-13
      • 1970-01-01
      相关资源
      最近更新 更多