我有一个有 1 个 aspx 的应用程序,它加载了各种 ascx 用户控件。然后该页面形成 URL,例如page.aspx?section=product&prodid=123
然后访问产品等。
我的任务是改变它,所以它使用干净的 url。所以我的计划是获取page.aspx/product/NAME
然后加载产品。
我有3条主要路线:
产品产品列表内容
所以。在我的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();
但是当我转到 URLpage.aspx/Product/TestProduct
并单步执行代码时,Page.RouteData
总是null
. 我知道我需要更多来加载我的页面,但从我所读的内容来看,我认为这至少足以让我看到我的路由是如何工作的。