【问题标题】:MVC Routing for IIS and JavascriptIIS 和 Javascript 的 MVC 路由
【发布时间】:2010-11-03 16:29:18
【问题描述】:

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

我的 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/,它将找不到任何东西。我对自己做错了什么感到有些困惑?谢谢!

【问题讨论】:

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


    【解决方案1】:

    我想我应该再等一会儿,直到在 SO 上发布我的问题,我想通了。我打算删除这个问题,但万一其他人遇到这个问题,我想我会留下它。

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

    【讨论】:

      猜你喜欢
      • 2020-06-17
      • 2010-09-27
      • 1970-01-01
      • 2015-11-26
      • 2014-11-04
      • 1970-01-01
      • 2019-08-27
      • 2011-12-16
      • 2010-12-23
      相关资源
      最近更新 更多