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

本文关键字:Asp net 路由 删除 aspx 扩展 简单 是否 方法 | 更新日期: 2023-09-27 18:18:34

我使用Asp。为了生成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)。在这方面有什么帮助吗?

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

您可以在IIS或Web中使用URL重写。配置和可以通过下面的代码片段来完成,将下面的代码放在"Global.asax"中。

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

好运

如果你想要一个项目中所有页面的通用解决方案,你可以使用这里的包:http://www.hanselman.com/blog/IntroducingASPNETFriendlyUrlsCleanerURLsEasierRoutingAndMobileViewsForASPNETWebForms.aspx

否则你可以在全局中使用它。

应用程序中的每个页面:
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);
        }
 }