路由配置:
context.MapRoute(
"Mobile_pnprank",
"mobile/experience/pnprank/{wxcfg}",
new { controller = "experience", action = "pnprank", wxcfg = UrlParameter.Optional }
);
context.MapRoute(
"Mobile_AboutUs",
"mobile/experience/aboutus/{wxcfg}",
new { controller = "experience", action = "aboutus", wxcfg = UrlParameter.Optional }
);
上面是两个路由配置。
还有一个路由和上面的路由是一样的,我在这个路由上加了{wxcfg}的值,
但是下面地址怎么都出现了值。为什么?
我想要他们都是没有参数的如:/mobile/experience/pnprank
/mobile/experience/pnprank/989aff6c-9b43-4909-a7eb-72da044930a3
/mobile/experience/aboutus/989aff6c-9b43-4909-a7eb-72da044930a3
我想出现了值和你的路由规则没有关系哇,看你的页面代码怎么写的呢。。
前台页面都是这样写的@Url.Action("cover", "home")
@不会代码的人: 这样的路由,压根就不会生成你贴的url地址哇,你检查下后台代码,是不是自己做了二次跳转。
@幻天芒: 有做二次跳转
1.判断当前url后的{wxcfg}是否有值,如果没有就加上,加上后在跳转到当前加值的Url。
结果就是我上面描述的了
@不会代码的人: wxcfg = UrlParameter.Optional 你设置的是可选参数,所以如果没传就是没值。
把这2条路由规则放到其它路由规则之前,包括默认路由规则。
这样是不行的。前台是用@Url.Action("cover", "home")调用的,是不是里面的机制把值赋值进去了
你这两个 URL 是怎么调用出来的?