Asp.net 如何在同一文件夹中混合MVC视图和ASPX页面?

Asp.net 如何在同一文件夹中混合MVC视图和ASPX页面?,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我如何告诉MVC routing应该加载company.com/store/bank\u account而不是MVC视图 谢谢。您可以使用IgnoreRoute执行此操作。您可以在global.asax中这样设置 routes.IgnoreRoute("{resource}.aspx/{*pathInfo}"); 看看这个 及 一个选项是使用重写引擎,例如。或者,如果您使用IIS7或更高版本,您可以使用 或者,由于您已经安装了MVC应用程序,您可以使用来为您的webforms页面使用路由 ,

我如何告诉MVC routing应该加载
company.com/store/bank\u account
而不是MVC视图


谢谢。

您可以使用IgnoreRoute执行此操作。您可以在global.asax中这样设置

routes.IgnoreRoute("{resource}.aspx/{*pathInfo}");
看看这个


一个选项是使用重写引擎,例如。或者,如果您使用IIS7或更高版本,您可以使用

或者,由于您已经安装了MVC应用程序,您可以使用来为您的webforms页面使用路由

,从上面的链接到,提供了一个方便的类来帮助您处理场景

代码在这里复制,因为链接有时会消失

Global.asax.cs
中注册路线时,您可以使用它

public static void RegisterRoutes( RouteCollection routes )
{
    // Note: Change the URL to "{controller}.mvc/{action}/{id}" to enable
    //       automatic support on IIS6 and IIS7 classic mode

    var routeHandler = new WebFormRouteHandler<Page>( "~/MyPage.aspx" );

    routes.Add( new Route( "{page}", routeHandler ) );
    routes.Add( new Route( "AccountServices/{page}", routeHandler ) );
    routes.Add( new Route( "Default.aspx", routeHandler ) );
}
publicstaticvoidregisterOutes(路由收集路由)
{
//注意:将URL更改为“{controller}.mvc/{action}/{id}”以启用
//IIS6和IIS7经典模式上的自动支持
var routeHandler=newwebformroutehandler(“~/MyPage.aspx”);
添加(新路由(“{page}”,routeHandler));
添加(新路由(“AccountServices/{page}”,routeHandler));
添加(新路由(“Default.aspx”,routeHandler));
}

混合使用MVC和Webforms不是一个好做法。如何在MVC中显示数百个静态页面,并在顶部/右角显示登录链接?为每个页面创建视图?您在问题中没有提到任何静态页面。如果您希望在每个页面上重复登录链接,可以使用mvcI中的母版页。您不知道IgnoreRoute将如何处理无扩展url(如
/store/bank_account
)到aspx路径的映射。IgnoreRoute使使用扩展访问页面变得容易,但这并不是真正的问题+但是,1是为了获得好的信息。
public static void RegisterRoutes( RouteCollection routes )
{
    // Note: Change the URL to "{controller}.mvc/{action}/{id}" to enable
    //       automatic support on IIS6 and IIS7 classic mode

    var routeHandler = new WebFormRouteHandler<Page>( "~/MyPage.aspx" );

    routes.Add( new Route( "{page}", routeHandler ) );
    routes.Add( new Route( "AccountServices/{page}", routeHandler ) );
    routes.Add( new Route( "Default.aspx", routeHandler ) );
}