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

How to change url as parameter will look like controller name in mvc

目前地址栏中的url显示为

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

是否有可能使 url 成为:

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

正在使用以下路线:

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

但是是否可以在不创建 "Canada" 控制器或操作方法的情况下执行此操作? 它也应该做与第一个 url 相同的事情。

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

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

本质上,这只是说路由中的第一条路径构成了一个"city"参数。因此,在像 /Canada/ 这样的路由中,city 将是 "Canada",而 controller/action 将是 "Home" 和 "Index"(因为它们没有在路线中提供)。

注:你知道加拿大不是一个城市吧?