如何在MVC RouteConfig中设置默认语言?

问题描述 投票:0回答:1

我的数据库中有一个Language表。有一种主要语言。我的软件在分层体系结构上。层:域数据(存储库)-业务演示,我正在使用Ninject for DI。

所以,我应该在应用程序启动时获得主要语言,并设置我的网址,例如:{language}/{controller}/{action}/{id}

我该怎么做?因为我无法访问RouteConfig.csGlobal.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 }
            );
        }
    }
c# asp.net-mvc global-asax language routeconfig
1个回答
-1
投票

作为建议,您可以将{ language }替换为默认语言代码,例如{ FR }/{ Controller }/{ Action }/ { id }

希望此帮助全部成功

© www.soinside.com 2019 - 2024. All rights reserved.