2009-12-27 37 views

回答

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

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

+0

谢谢你的帮助。 – 2009-12-27 13:13:18