我遇到路由问题的时候很糟糕。希望你能帮助我。
以下是工作的网址:
http://www.example.com/Stories/Action-Name/StoryName
http://www.example.com/Stories/Action-Name/
(它会自动重定向到〜/ Stories / Action-Name / StoryName,这就是我想要的。
但是,如果我删除尾随的“ / ”(即http://www.example.com/Stories/Action-Name),则会重定向到:http://www.example.com/StoryName
我不知道这是怎么发生的。
这是我在Global.asax中设置的路线:
routes.MapRoute("SurvivorStoriesRedirect", "Stories/Action-Name/{id}", new {
controller = "Stories",
action = "Action-Name",
id = UrlParameter.Optional
});
请让我知道我做错了什么。
感谢。
编辑 -
我不知道是什么或如何搞砸了这个但是我刚刚添加了这个:
routes.MapRoute("SurvivorStoriesRedirect", "Stories/{action}/{id}", new {
controller = "Stories",
action = "Index",
id = UrlParameter.Optional
});
并删除了“故事”控制器的任何其他路线,一切似乎都有效。
答案 0 :(得分:3)
您可能需要创建一个路由来处理默认操作调用。试试这个:
routes.MapRoute("SurvivorStoriesDefault", "Stories/Action-Name", new {
controller = "Stories",
action = "Action-Name"
});
答案 1 :(得分:1)
从routedebugger获取Phil Haack的NuGet或从Phil post下载该邮政编码,您将能够查看不会向您显示为什么<的匹配/ em>但你会看到如何并很快搞清楚。