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