忽略全球化url的第一部分

本文关键字:第一部 一部分 url 全球化 | 更新日期: 2023-09-27 18:17:57

我被要求在我的项目中改变全球化的工作方式。

今天我有

  • www.mysite.com.br
  • www.mysite.com.mx
  • www.mysite.com.ar

所以我可以访问我的页面,像: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
  • www.mysite.com/mx
  • www.mysite.com/ar

所以我需要访问我的页面,如: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时,他给了我错误"服务器错误在'/'应用程序资源找不到"。当然,在名为br的文件夹中没有Default.aspx

我正在读关于路线的书。但到目前为止,我无法实现这些,我不确定这是否是我的正确路径


通过路由,我正在尝试这样做:

全球。asax(我必须创建一个,因为我的项目没有)

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

但是错误是一样的

忽略全球化url的第一部分

我成功了。

因为它是一个网站而不是一个项目,我不得不在这个答案的帮助下将RegisterRoutes(RouteTable.Routes);添加到Application_Start