C# 如何在VB.NET Web.Form中切换网站语言?

C# 如何在VB.NET Web.Form中切换网站语言?,c#,asp.net,vb.net,routes,request.querystring,C#,Asp.net,Vb.net,Routes,Request.querystring,我有一个简单的网站,有两种语言,英语和法语。在我的母版页中,我有一个切换到其他语言的超链接。当用户单击该超链接时,我希望生成与Microsoft.com完全相同的URL!这意味着: fr ca/locale.aspx 美国英语/locale.aspx 要做到这一点,我有点困惑!我注册了一些路由来实现这一点,但我不知道在哪里动态切换querystring变量来实现这一点 此处,我的注册表项从Global.asax中的应用程序_开始: Sub RegisterRoutes(ByVal routes

我有一个简单的网站,有两种语言,英语和法语。在我的母版页中,我有一个切换到其他语言的超链接。当用户单击该超链接时,我希望生成与Microsoft.com完全相同的URL!这意味着:

  • fr ca/locale.aspx
  • 美国英语/locale.aspx
  • 要做到这一点,我有点困惑!我注册了一些路由来实现这一点,但我不知道在哪里动态切换querystring变量来实现这一点

    此处,我的注册表项从Global.asax中的应用程序_开始:

    Sub RegisterRoutes(ByVal routes As RouteCollection)
    
        Dim language As String = "en-us"
    
        routes.MapPageRoute("Home", "home/{language}/{ReturnUrl}", "~/Default.aspx", True, 
            New RouteValueDictionary(New With {.language = language, .ReturnUrl = "default.aspx"}))
    
        routes.MapPageRoute("DetailsUser", "info-user/{language}/{id}", "~/DetailUsager.aspx", True,
            New RouteValueDictionary(New With {.language = language, .id = ""}))
    
        routes.MapPageRoute("Contact", "contact-us/{language}", "~/ContactForm.aspx", True,
            New RouteValueDictionary(New With {.language = language}))
    
        routes.MapPageRoute("SwitchLanguage", "{language}", "~/Home.aspx", True,
            New RouteValueDictionary(New With {.language = language}))
    End Sub
    
    我知道这是一个基本问题,但我找不到任何答案。那么,做这件事的好方法是什么呢


    再次感谢你的帮助

    以下代码将从用户请求/浏览器标题(en-US)获取语言

    VB.Net

    For Each s As String In Me.Request.UserLanguages
        Response.Write(s)
    Next
    
    Me.Request.UserLanguages(0)
    
    C#

    当前语言是数组中的第一种语言:

    VB.Net

    For Each s As String In Me.Request.UserLanguages
        Response.Write(s)
    Next
    
    Me.Request.UserLanguages(0)
    
    C#

    希望这能回答这个问题。 谢谢