C# 使用Asp.net路由有没有简单的方法可以删除使用Asp.net路由的.aspx扩展名

C# 使用Asp.net路由有没有简单的方法可以删除使用Asp.net路由的.aspx扩展名,c#,asp.net,url-rewriting,url-routing,C#,Asp.net,Url Rewriting,Url Routing,我使用Asp.NET4.0,为了生成SEO友好的URL,我使用Asp.Net路由方法,如 public static void RegisterRoutes(RouteCollection routes) { routes.Add("BikeSaleRoute", new Route ( "bikes/sale", new CustomRouteHandler("~/Contoso/Products/Details.aspx") )); }

我使用Asp.NET4.0,为了生成SEO友好的URL,我使用Asp.Net路由方法,如

public static void RegisterRoutes(RouteCollection routes)
{
    routes.Add("BikeSaleRoute", new Route
    (
       "bikes/sale",
       new CustomRouteHandler("~/Contoso/Products/Details.aspx")
    ));
}
在应用程序启动方法中处理它

 void Application_Start(object sender, EventArgs e) 
 {
    RegisterRoutes(RouteTable.Routes);

 }

我试图编写的是一个使用Asp.net路由的方法,该方法可以从我的所有页面中删除.aspx扩展名,而不管它们的目录级别如何(甚至包括起始页面Default.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);
        }
 }

您可以在IIS或Web.Config中使用URL重写,并且可以通过以下代码片段来完成,将以下代码放在“Global.asax”中


公共静态无效注册表项(RouteCollection RouteCollection)
{
routeCollection.MapPageRoute(“RouteFordFault”、“Default”、“Default”、“~/Default.aspx”);
}


祝你好运

Kamlesh Arya,我需要使用Asp.net路由技术,而不是需要IIS确认www.example.com/Default,而不是使用此URL:www.example.com/Default.aspx,它将工作。是的,现在可以工作,但这仅用于一个页面。如果我们想要一个通用的方法来处理项目中的每一个页面呢?亲爱的,你可以在很多页面上使用这个方法,比如:routeCollection.MapPageRoute(“RouteFordFault”,“Page1”,“~/Page1.aspx”);routeCollection.MapPageRoute(“RouteFordFault”、“Page2”、“~/Page2.aspx”);,没有写单行的快捷方式来删除.aspx扩展名,如果您将使用标准的URL重写,那么您将为不同的页面写不同的内容。。希望你能理解。谢谢你的帮助。我尝试搜索备选方案,但除了对每个页面使用单独的规则外,在“路由”的边界下找不到一个。是的,这样做很公平,可以开始,然后开始重新编写IIS URL。幸运的是,上述代码只适用于特定页面。a需要能够在解决方案中的每一页上工作的东西。谢谢