2009-12-27 91 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