2010-07-21 111 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