我的数据库中有一个Language
表。有一种主要语言。我的软件在分层体系结构上。层:域数据(存储库)-业务演示,我正在使用Ninject for DI。
所以,我应该在应用程序启动时获得主要语言,并设置我的网址,例如:{language}/{controller}/{action}/{id}
我该怎么做?因为我无法访问RouteConfig.cs
或Global.asax
上的业务层,所以有办法吗?
我想这样做:
public class RouteConfig
{
private ILanguageBusiness _languageBusiness;
public RouteConfig(ILanguageBusiness languageBusiness)
{
_languageBusiness = languageBusiness;
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{language}/{controller}/{action}/{id}",
defaults: new { language = _languageBusiness.GetPrimaryLanguageCode(), controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
作为建议,您可以将{ language }
替换为默认语言代码,例如{ FR }/{ Controller }/{ Action }/ { id }
希望此帮助全部成功