2011-08-04 27 views
0

我有一個MVC項目,我剛剛作爲應用程序安裝在現有的IIS站點上。測試時,路由工作得很好,因爲它運行在localhost的根目錄下,但是當我將它部署爲應用程序時,路由會變得混亂(它試圖將任何方法路由到http://foo.com/search而不是http://foo.com/bar/search)。我知道這應該是一個相當簡單的事情來解決,我似乎無法拿出谷歌似乎喜歡的正確措辭。
FWIW,我試着做以下,但它開始嘔吐403錯誤:作爲IIS中的應用程序的ASP.NET MVC網站的問題

routes.MapRoute(
      "Default", // Route name 
      "bar/{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
     ); 

原本該URL,而不是 「{控制器}/{行動}/{ID}」, 「網站/ ...」 。

任何想法?

+1

你是否確信你調用'Url.Content(「〜/」)',而不僅僅是'「〜/」 '在你的get/post調用中? –

+0

這樣做。我對MVC很陌生,只是放入了直接的URL而不是Url.Content。謝謝! –

+0

很高興我能幫到你。我轉發了我的評論作爲答案,所以你可以檢查它作爲首選答案(如果它當然幫助你) –

回答

1

請確保您撥打Url.Content("~/"),而不是在撥打/接聽電話時撥打"~/"

我之前在我的一些mvc項目上遇到過這個問題,所以我想這就是發生了什麼。

祝你好運!

(如果它是不允許發佈作爲回答我的意見,我會刪除此)

+0

我很滿意,我只是在等你寫一個答案,所以我可以將其標記爲解決方案。 –

0

我認爲你正試圖將一些模塊分成一些其他的子文件夾結構。你有沒有嘗試過使用區域?

僅使用現有的url重新路由並不容易。

改爲使用鼠標右鍵單擊VS 2010項目並添加區域。所有在該區域下的控制器和視圖都將落入子文件夾中。例如,我有一個網址,類似於http://localhost:4000/admin/manageuser/add

+0

父站點和mvc應用程序在兩個不同的項目。他們只能在生產環境中聚集在一起。不過,我會在未來考慮這一點。原來我使用的是直接的URL而不是Url.Content,因爲Evan Layman在我的文章的評論中說。 –

相關問題