2009-09-27 109 views
0

我有这两条路由当前在我的应用程序之后,分解出许多其他的。首先让我解释一下,我已经有了一个相当大的应用程序,但遇到了一个问题,即我的应用程序不再从根网址开始。ASP.NET MVC中的奇怪的路由问题 - 默认路由未被击中

如果我将起始页设置为default.aspx,那么webapp将从(示例)http://localhost:55421/Default.aspx开始。我不想那样。我希望它没有Default.aspx

因此,我进入应用程序属性,并删除Default.aspx作为起始页 - 现在它是空白字段(就像在示例新的MVC应用程序,如果你在VS 2008中创建它)。

但现在应用程序确实从所需的URL开始,但发出错误: “传入的请求与任何路由都不匹配。”

此外,如果我使用路由调试器,它也错过了所有的路由,并通过catchall路由捕获它。

我不知道怎么这一切都是可能的,因为正如我上面说我在这个时候配置两个缺省路由:

routes.IgnoreRoute(“{}资源个.axd/{*} PATHINFO “); routes.MapRoute( “Default”, “{controller}/{action}/{id}”,//带参数的网址 新{controller =“Pages”,action =“Display”,slug =“Default” } );

任何帮助表示赞赏

回答

1

我是正确的思维你想打

http://server/{controller}/{action}/{id} 

http://server/ 

如果你是我认为你需要,以提供一个默认最后一个参数{id}。你有一个参数slug的默认值,但{id}没有默认值,我不认为ASP.NET路由可以达到它。

如果我是正确的

http://server/Pages/Display 

应该也不会打的默认路由,因为你是在显示希望ID?

HTH Alex