2010-07-21 78 views
3

我有一个asp.net mvc 2应用程序(使用.net 4.0),托管在虚拟目录中时路由不正确。我有以下简单的路由规则:我想要解析http://mydomain.com/accounts/new。凡“帐户”是一个虚拟目录。如果我把应用程序放在IIS网站的根目录下,它的路由罚款为http://mydomain.com/new,但是如果我把应用程序放在虚拟目录中,我会得到404错误。我已经调试过,它正在执行global.asax并在vdir中配置路由。有什么特别的我需要做的路由在虚拟目录中?ASP.NET MVC路由不能在虚拟目录中工作

仅供参考。我使用的是一个vdir,因为root在其中有wordpress。

谢谢!

还有一件事是,如果我在参数默认值中指定一个默认操作,它将执行默认的动作/控制器,但它永远不会匹配其他任何东西。

routes.MapRoute( 
    "Default", // Route name 
    "accounts/{action}", // URL with parameters (BUT WITH ACCOUNTS PREFIX) 
    new { controller = "accounts" } // Parameter defaults 
); 

回答

1

我想通了:

0

不,如果你将其更改为它工作。 Wordpress(我已经安装在网站根目录)配置了一些URL重写规则,它们可以防止asp.net mvc接收除虚拟目录根之外的任何请求。任何超出这个范围的路径都会被重写为index.php,这当然不会在我的mvc应用程序中存在。

我删除了重写规则,现在一切都按预期工作。

+0

不,也不起作用。 – 2010-07-21 21:04:31