如何使用ActionLink资源?

时间:2009-12-27 08:38:13

标签: asp.net-mvc globalization

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

1 个答案:

答案 0 :(得分:2)

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

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" }) %>

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