ASP.NET MVC路由问题

时间:2011-02-03 21:05:13

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

我遇到路由问题的时候很糟糕。希望你能帮助我。

以下是工作的网址:

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
            });

并删除了“故事”控制器的任何其他路线,一切似乎都有效。

2 个答案:

答案 0 :(得分:3)

您可能需要创建一个路由来处理默认操作调用。试试这个:

routes.MapRoute("SurvivorStoriesDefault", "Stories/Action-Name", new {
                controller = "Stories",
                action = "Action-Name"
            });

答案 1 :(得分:1)

routedebugger获取Phil Haack的NuGet或从Phil post下载该邮政编码,您将能够查看不会向您显示为什么<的匹配/ em>但你会看到如何并很快搞清楚。