忽略全球化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"
);
}
但是错误是一样的
我成功了。
因为它是一个网站而不是一个项目,我不得不在这个答案的帮助下将RegisterRoutes(RouteTable.Routes);
添加到Application_Start
中