我正在为我的应用程序配置路由表,并希望捕获未指定语言的路由并重定向到使用语言页面指定的路由。现在,我仅在RouteConfig中映射路由时找到了解决方案,但问题是Initialize()仅被调用一次,默认参数仅被计数一次。
[InitializableModule]
[ModuleDependency(typeof(ServiceContainerInitialization))]
public class RouteConfig : IInitializableModule
{
public void Initialize(InitializationEngine context)
{
LocalizationService localizationService = LocalizationService.Current;
var currentLanguage = localizationService.GetString($"/locale/{ContentLanguage.PreferredCulture.Name}", ContentLanguage.PreferredCulture.Name);
RouteTable.Routes.MapContentRoute(
"EpiSeverRegisteredRoute",
"{language}/{node}/{action}",
new { language = currentLanguage, action = "index" });
}
public void Uninitialize(InitializationEngine context) {
}
public void Preload(string[] parameters) { }
}
答案 0 :(得分:0)
我通过在Global.asax文件中添加Application_BeginRequest(Object,EventArgs)方法解决了我的问题,在该文件中,我对本地化服务进行了相同的工作,然后重定向到指定的另一种语言进行路由。现在,在每次请求开始时都会调用此方法,对我来说,这不是100%好的方法,但是它可以工作。