如何更改url作为参数将看起来像mvc中的控制器名称

时间:2016-11-07 16:32:33

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

目前,地址栏中的网址显示为

example.com/?City=Canada&para1=&para2=&....

是否可以将网址设为:

example.com/Canada/?para1=&para2=&....

正在使用以下路线:

 routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

但是,如果不创造加拿大"控制器或动作方法? 它也应该与第一个url做同样的事情。

1 个答案:

答案 0 :(得分:1)

在当前默认路线之前,只需放置以下之类的内容。

routes.MapRoute(
    name: "CityDefault",
    url: "{city}/{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

基本上,这只是说路线中的第一条路径构成了一个“城市”的参数。因此,在/Canada/之类的路线中,city将是“加拿大”,controller / action将是“首页”和“索引”的默认值(因为它们没有在路线中提供。)

注意:您知道加拿大不是一个城市吗?