2010-11-03 33 views
0

我覺得我有一個相當簡單的問題來解決,但我似乎無法讓它按我的需要工作。當通過Visual Studio運行Web應用程序時,我得到一個URL,例如:http://localhost:50261/Controller/Action但是,當我將它部署到IIS時,URL設置如下:http://devServer/AppName/Controller/Action用於IIS和Javascript的MVC路由

我遇到了一個問題,我的ajax URL請求沒有正確路由。在本地運行Web應用程序時,我的ajax URL是:/Controller/Action但是當我部署到開發IIS時,我必須將其更改爲:/AppName/Controller/Action以便正確路由ajax請求。

因此,我一直在嘗試創建正確的mapRoute以將我的ajax URL保留爲/AppName/Controller/Action,所以我不必在每次部署時都調整它。這就是我現在那不是工作:

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

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

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

     } 

通過這些途徑,如果我嘗試的網址:http://localhost:50261/AppName/無法找到任何東西。我有點困惑我做錯了什麼?謝謝!

回答

0

我想我應該等一會兒,直到發佈我的問題,所以我想通了。我打算刪除這個問題,但如果有人遇到這個問題,我想我會離開它。

我的問題與MVC路由無關,但與Visual Studio開發服務器的設置更多。我所要做的就是正確地放入「虛擬路徑」以匹配我的IIS結構,現在Web應用程序可以在本地工作,並且在部署時無需進行更改。