忽略全球化的 url 的第一部分

Ignore first segment of url for globalization

我需要改变全球化在我的项目中的运作方式。

今天我有

所以我可以像这样访问我的页面:www.mysite.com.br/default.aspx

基于此,我根据 URL

改变了语言和内容
Country obj = dataContext.Country.FirstOrDefault(c => c.Domain.Equals(HttpContext.Current.Request.URL.Host.ToLower()));

但是现在,他们说他们需要这样

所以我需要像这样访问我的页面:www.mysite.com/br/default.aspx

我可以使用这个

在我的函数中获取国家/地区
Country obj = dataContext.Country.FirstOrDefault(c => c.Abbreviation.Equals(HttpContext.Current.Request.Url.Segments.Where(s => s != "/").First()));

但是当我访问www.mysite.com/br/Default.aspx时他给我错误"Server Error in '/' Application The resource cannot be found"。当然,我在名为 br.

的文件夹中没有 Default.aspx

我正在阅读有关路线的信息。但到目前为止我无法实现这些,我不确定这是否适合我 atm


按路线,我正在尝试这样的事情:

Global.asax(我必须创建一个,因为我的项目没有)

public static void RegisterRoutes(RouteCollection routes)
{
    routes.MapRoute(
        "Default",
        "{lang}/Default.aspx",
        "~/Default.aspx"
    );
}

但错误是一样的

我成功了。

因为它是一个网站而不是项目,所以我不得不在 this answer

的帮助下在 Application_Start 中添加 RegisterRoutes(RouteTable.Routes);