用于IIS和Javascript的MVC路由

时间:2010-11-03 16:29:18

标签: asp.net-mvc-2 routing url-routing asp.net-mvc-routing

我认为我有一个相当容易解决的问题,但我似乎无法按需要让它工作。通过Visual Studio运行Web应用程序时,我得到一个URL,例如:http://localhost:50261/Controller/Action但是当我将其部署到IIS时,URL设置如下:http://devServer/AppName/Controller/Action

我的问题是我的ajax网址请求没有正确路由。在本地运行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/,则无法找到任何内容。对于我做错了什么我有点困惑?谢谢!

1 个答案:

答案 0 :(得分:0)

我想我应该等待一段时间,直到把问题发布到SO上,我才知道。我打算删除这个问题但是,如果其他人遇到这个问题,我以为我会离开它。

我的问题与MVC路由无关,但更多与Visual Studio开发服务器的设置有关。我所要做的就是正确地放入“虚拟路径”以匹配我的IIS结构,现在Web应用程序在本地工作,部署时无需进行更改。