在ASP.NET MVC应用程序中,URL路径可以配置为两种不同的方式在IIS和本地主机上导航:有或没有应用程序名称。在没有应用程序名称的情况下,所有控制器都可以与URL路径的根路由一起工作。否则,控制器应该将应用程序名称添加为标准路由的前缀。解决此问题的一种方法是,使用以下配置文件:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
此代码片段表示,请求被路由到默认控制器“Home”的“Index”操作。该URL可以在IIS上的“http://localhost/{appname}”中使用,也可以在本地主机上的“http://localhost:port/”中使用。如果需要在应用程序名称中添加前缀,则可以以以下方式更改默认路由:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{appname}/{controller}/{action}/{id}",
defaults: new { appname = "MyApp", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
此代码片段将路由请求到控制器“Home”的“Index”操作,但在URL路径的开头添加了应用程序名称“{appname}”。URL可以在IIS上的“http://localhost/{appname}”中使用,并且在本地主机上的“http://localhost:port/{appname}”中使用。这是一个简单的方法来解决不同导航的问题。