忽略全球化的第一段网址

时间:2015-10-16 13:50:05

标签: c# url globalization

我被要求改变全球化对我的项目的作用方式。

今天我有

  • 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时,他给出了错误“服务器错误'/'应用程序无法找到资源”。当然,我在名为Default.aspx的文件夹中没有br

我正在读路线。但到目前为止,我无法实现这些,我不确定这对我来说是不是正确的道路

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

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

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

但错误是一样的。

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。

由于它是一个WebSite而不是一个项目,我必须在this answer的帮助下在RegisterRoutes(RouteTable.Routes);内添加Application_Start