我在Nuget上使用最新版本的AttributeRouting軟件包爲我的ASP.Net MVC項目設置路由。我正在創建一個有兩種語言的網站,英文(小學)和西班牙文(中學)。這兩種語言的網址是不同的。例如,關於我們的英文版會是這樣的:www.root.com/en/about-us,而西班牙語版本可能是這樣的:www.root.com/es/sobre-nosotros。屬性路由和本地化問題
我有如下一個路由前綴設置: [RoutePrefix(「EN」,TranslationKey =「主頁」)]
然後,我有我創建的從XML文件到FluentTranslationProvider讀取值的程序。對於註冊我的路由代碼如下所示:
var translations = new FluentTranslationProvider();
translations
.AddTranslations()
.FromFile();
routes.MapAttributeRoutes(
config =>
{
config.AddRoutesFromControllersOfType<BaseController>();
config.AddTranslationProvider(translations);
config.CurrentUICultureResolver =
(httpContext, routeData) =>
(string) routeData.DataTokens["cultureName"] ??
Thread.CurrentThread.CurrentUICulture.Name;
});
而且這似乎是工作,因爲我可以訪問我的Routes.axd頁面,看到以下內容:http://imm.io/nm7Z
後來在我的網頁,我的代碼顯示我的CurrentCulture設置爲es-AR,但是當我調用URLHelper類來構建url時,它只會生成默認的英文版本,並且不會給我西班牙語版本。任何人都可以告訴我爲什麼會出現這種情況?我不能爲我的數字生活這一點。
請添加你的代碼調用urlhelper – 2013-12-03 05:47:13
此外,圖像鏈接到您的文章不存在 – Henrik 2013-12-08 12:15:06