我认为我有一个相当容易解决的问题,但我似乎无法按需要让它工作。通过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/
,则无法找到任何内容。对于我做错了什么我有点困惑?谢谢!
答案 0 :(得分:0)
我想我应该等待一段时间,直到把问题发布到SO上,我才知道。我打算删除这个问题但是,如果其他人遇到这个问题,我以为我会离开它。
我的问题与MVC路由无关,但更多与Visual Studio开发服务器的设置有关。我所要做的就是正确地放入“虚拟路径”以匹配我的IIS结构,现在Web应用程序在本地工作,部署时无需进行更改。