我有一个应用程序,既有集成的MVC5和Webforms。我正在把它从WebForms转换成MVC,一步一步来。在添加了控制器、vies等之后,我添加了MVC路由,如下所示。但由于某些原因,当我启动应用程序(F5)时,Default.aspx页面仍然打开,而不是我的主页/索引。我做错了什么?
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("Default.aspx/{*pathInfo}");
routes.IgnoreRoute("");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}编辑:我只是弄明白了,但不明白为什么。似乎当我转到项目的属性并将服务器设置为"Use Visual Studio Development Server“时,它会在启动时显示我的Default.aspx页面。但当我将其更改为“使用本地IIS Web服务器”时,MVC Url路由就会生效,并打开我的Home\Index页面。有人能给我解释一下吗?
发布于 2015-10-17 13:42:24
只有当我注释掉Application_Start中的路由注册(参见下面我的Global.asax中的注释行)时,我才能重现上述行为。除此之外,它在样例webforms和mvc5混合项目中工作得很好。
这是我的Global.asax
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
AreaRegistration.RegisterAllAreas();
//GlobalConfiguration.Configure(WebApiConfig.Register);
//RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}这是我的RouteConfig
public static void RegisterRoutes(RouteCollection routes)
{
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new {controller="Home", action = "Index", id = UrlParameter.Optional }
);
}https://stackoverflow.com/questions/33182974
复制相似问题