ASP中的URL路由.NET 4.0

本文关键字:NET 路由 中的 URL ASP | 更新日期: 2023-09-27 18:19:08

我有一个应用程序,有1 aspx,它加载各种ascx用户控件。该页面然后形成url,如page.aspx?section=product&prodid=123,然后访问产品等。

我的任务是改变这一点,所以它使用干净的url。所以我的计划是获得page.aspx/product/NAME,然后它将加载产品。

我有3条主要路线:

产品ProductList内容

。在我的global.asax我有:

 void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        RegisterRoutes(RouteTable.Routes);
    }
 public static void RegisterRoutes(RouteCollection routeCollection)
    {
        routeCollection.MapPageRoute("RouteForProduct", "Product/{ProductName}", "~/IRShop.aspx", false, new RouteValueDictionary { { "ProductName", String.Empty } });
        routeCollection.MapPageRoute("RouteForProductList", "ProductList/{CatName}", "~/IRShop.aspx", false, new RouteValueDictionary { { "CatName", String.Empty } });
        routeCollection.MapPageRoute("RouteForContentList", "Content/{PageName}", "~/IRShop.aspx", false, new RouteValueDictionary { { "PageName", String.Empty } });
    }

我也有一个using System.Web.Routing。

在我的page.aspx。c#代码,我最初尝试做:

string id = Page.RouteData.Values["ProductName"].ToString();

但是当我转到URL page.aspx/Product/TestProduct并逐步执行代码时,Page.RouteData始终是null。我知道我需要更多的页面加载,但从我所读到的,我本以为这已经足够了,至少让我看看我的路由是如何工作的。

我的参考是:http://www.dotnetjalps.com/2011/12/easy-url-rewriting-in-aspnet-40-web.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+blogspot%2FDotNetJalps+%28DotNetJalps%29&utm_content=Google+Reader

ASP中的URL路由.NET 4.0

尝试将"/page.aspx/Product/ProductName"改为"/Product/ProductName"