【发布时间】:2014-07-08 20:45:57
【问题描述】:
我已将 MVC 添加到我一直在处理的现有 webforms 项目中,因为我希望慢慢迁移该项目,但是,在更改期间我需要能够访问这两者,但拥有它默认为 aspx 页面。
在注册路由时,我目前有这个:
private void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapPageRoute("Backup", "{*anything}", "~/Default.aspx");
routes.MapRoute(
"MVC",
"{controller}/{action}/{id}",
new { controller = "Test", action = "Index", id = 1 }
);
}
但是,当我这样设置时,即使我输入了一个我知道是指控制器/动作组合的 URL(例如,最后一行中的测试和索引),它仍然会将用户重定向到Default.aspx 页面。
我已尝试将其更改为以下内容:
private void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"MVC",
"{controller}/{action}/{id}",
new { controller = "Test", action = "Index", id = 1 }
);
routes.MapPageRoute("Backup", "{*anything}", "~/Default.aspx");
}
这里,用户可以指定一个页面或者指定一个控制器/动作,但是如果他们不包含任何控制器/aspx页面,它默认为默认的MVC路由,而我需要它默认为webform Default.aspx .
我将如何解决这种情况,以便如果没有指定页面/控制器,它会定向到 ~/Default.aspx,如果指定了控制器,它会定向到该控制器?
【问题讨论】:
-
您可以添加一个简单的控制器,然后将其重定向到您的 aspx 页面,或者在您的 global.ascx 上使用此代码: void Application_Start(object sender, EventArgs e) { System.Web.Routing.RouteTable .Routes.MapPageRoute("Home","Home/Index","~/Default.aspx"); }
标签: asp.net asp.net-mvc asp.net-mvc-routing