2
我想實現一個很好的本地化方法,並且需要幫助來弄清楚如何讀出路由參數。首先,我實現了本地化如下:在asp.net核心1.0.0中讀取路徑值
在Startup.cs
// Configure supported cultures and localization options
services.Configure<RequestLocalizationOptions>(options =>
{
var supportedCultures = new[] { new CultureInfo("en-US"), new CultureInfo("de-DE") };
options.DefaultRequestCulture = new RequestCulture("en-US", "en-US");
options.SupportedCultures = supportedCultures;
options.SupportedUICultures = supportedCultures;
options.RequestCultureProviders.Insert(0, new CustomRequestCultureProvider(context =>
{
var cultureInfo = options.DefaultRequestCulture.Culture;
string contextRequestUrlPath = context.Request.Path.ToString();
foreach (var c in supportedCultures)
if (contextRequestUrlPath.Contains(c.ToString())) cultureInfo = c;
return Task.FromResult(new ProviderCultureResult(cultureInfo.ToString()));
}));
});
對於每一個通過string.Contains()要求我CustomRequestCultureProvider檢查文化信息在裏面,並更新ProviderCultureResult。
與IAM路由這樣的:
app.UseMvc(
routes => { routes.MapRoute(name: "default", template: "{culture=en-US}/{controller=Home}/{action=Index}/{id?}"); });
有沒有辦法從當前路徑讀出的文化模板元素?我需要在我的項目中檢查幾點。另外在一個視圖中,我想有可能讀出路由值而不是檢查context.Request.Path字符串。