【发布时间】:2011-08-24 19:18:55
【问题描述】:
我正在调试 ASP.NET MVC 中的路由匹配问题。 URL 的定义如下:{foo}/Somewhere/{controller}/{action}/{id}。每个段都在路线上设置了一个默认值。
当我尝试浏览 http://hostname/bar/Somewhere 时,路由匹配。如果我尝试http://hostname/Somewhere(因此省略 foo 段),路由不匹配。
我从 Phil Haack 安装了 routedebugger,我可以看到我的默认设置正确(控制器 = Home,action = Index,id = UrlParameter.Optional,foo = bar),但路由仍然不匹配并且我得到一个 404。
我尝试将路由修改为在“静态”段之前没有“可选”段,如下所示:Somewhere/{controller}/{action}/{id}/{foo}。使用此路由,两个 url(http://hostname/Somewhere/bar 和 http://hostname/Somewhere)都按预期工作。
MVC 中是否存在限制(或错误),我不能在硬编码之前使用“可选”段?
感谢您的帮助, 费边
【问题讨论】:
标签: asp.net-mvc routes