我想达到改变我的应用程序的路线this目标看起来像这样的路线时恢复到查询字符串PARAMS:ActionLinks匹配不包含PARAM
hxxp://host/MyController/Widgets/3/AddWhatsit
这条路的观点将有助于为用户添加的whatsit到Widget的3
同样,我希望创建一个新的插件的路线是:
hxxp://host/MyController/Widgets/Create
我已经创建了单独的路线来尝试和促进这一点。它们是:
routes.MapRoute("DefaultAction",
"{controller}/{action}",
new {controller = "Home", action = "Index"});
routes.MapRoute("Default",
"{controller}/{id}/{action}",
new {controller = "Home", action = "Index", id = UrlParameter.Optional});
我遇到的问题是,当我浏览到该索引页的小工具(/ myController的/小工具,匹配“DEFAULTACTION”路线),这将带来一个新的URL参数设置的任何ActionLinks这不是该路线的一部分会变成查询字符串值。所以,举例来说,Widget 3的编辑链接将呈现为: Widget/Edit?id=3 instead of (what I would prefer):
Widget/3 /编辑
我想我明白我不会把我的(可选)id参数放在末尾路线。
我应该把它吸起来,并在路线的尽头留下id?
这让我非常接近。一个副作用是,如果我在使用像“/ Widget/4/Whatsits”这样的路径进行查看并且想将动作链接返回到“Widget/Index”,我会得到类似于“Widget/4/Index”没有必要。所以这会从“自定义”路线跳转到“默认”。 – 2013-03-21 20:53:39
它看起来像我的第二个问题是单独的(环境路由值),所以我会关闭这一个。感谢您的回答。 – 2013-03-21 21:20:22