有没有简单的方法使用Asp.net路由来删除使用Asp.net路由的.aspx扩展

时间:2014-08-19 11:13:24

标签: c# asp.net url-rewriting url-routing

我正在使用Asp.Net 4.0并生成SEO友好的URL我使用Asp.Net路由方法,如;

public static void RegisterRoutes(RouteCollection routes)
{
    routes.Add("BikeSaleRoute", new Route
    (
       "bikes/sale",
       new CustomRouteHandler("~/Contoso/Products/Details.aspx")
    ));
}

在Application_Start方法

中处理它
 void Application_Start(object sender, EventArgs e) 
 {
    RegisterRoutes(RouteTable.Routes);

 }

我想写的是一种使用Asp.net路由的方法,它可以从我的所有页面中删除.aspx扩展,而不管它们的目录级别(甚至是起始页面Default.aspx)。请帮忙吗?

2 个答案:

答案 0 :(得分:1)

您可以在IIS或Web.Config中使用URL重写,并可以通过以下代码片段进行操作,将以下代码放在“Global.asax”中。

  

public static void RegisterRoutes(RouteCollection routeCollection) { routeCollection.MapPageRoute("RouteForDefault", "Default", "~/Default.aspx"); }

祝你好运

答案 1 :(得分:0)

如果您想要项目中所有页面的通用解决方案,可以在此处使用该包: http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx

否则,您可以在Global.asax中为应用程序中的每个页面使用它:

public class Global : System.Web.HttpApplication
{
        void RegisterRoutes(RouteCollection routes)
        {
            routes.MapPageRoute("InteriorServices", "InteriorServices", "~/InteriorServices.aspx");
        }
        protected void Application_Start(object sender, EventArgs e)
        {
            RegisterRoutes(RouteTable.Routes);
        }
 }