适用于不同国家的ASP.NET MVC路由

时间:2012-10-24 11:01:23

标签: asp.net asp.net-mvc-3 routing asp.net-mvc-routing

我有一个网站,可以为几个不同的国家/地区提供服务。当用户访问该站点时,我将使用IP定位器工具来确定他们来自哪个国家/地区。所有国家都会说英语,所以所提出的观点将是相同的,但价格会有所不同以及其他一些事情。

我想要的路由是这样的:

  • mydomain.com/UK/Pricing
  • mydomain.com/Australia/Pricing
  • mydomain.com/UK/Features/SomeFeature
  • mydomain.com/Australia/Features/SomeFeature

你明白了......

任何人都可以在global.asax中为我提供我需要的路由吗?

我尝试过以下操作,但我不想为每个国家/地区创建视图:

routes.MapRoute(
"Default", 
"{country}/{controller}/{action}/{id}", 
 new { country = "UK", controller = "Home", action = "Index", id = "" }
 );

2 个答案:

答案 0 :(得分:2)

您的路线应该足够好,您只需要在Action方法中添加一个参数来检索国家/地区值:

public ActionResult Index(int id, string country) {
  // your code here...
}

答案 1 :(得分:0)

我是WebForms,你也可以使用

string country = Page.RouteData.Values["country"].ToString();

不确定这是否也适用于MVC,但我会这么认为。