나는 1 개의 aspx가 있고 다양한 ascx 사용자 컨트롤을로드합니다. 이 페이지는 page.aspx?section=product&prodid=123
과 같은 URL을 작성하여 제품 등에 액세스합니다.ASP.NET 4.0의 URL 라우팅
깨끗한 URL을 사용하도록이 작업을 변경해야합니다. 그래서 내 계획은 page.aspx/product/NAME
을 얻는 것이고, 그러면 제품이로드 될 것입니다.
나는 3 개 주요 노선이 있습니다
제품 제품 목록 내용
겠어요 -을 내 global.asax
에서 나는이 : 나는뿐만 아니라 System.Web.Routing를 사용하여 한
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 } });
}
합니다.
있음 내 page.aspx
. C# 코드, 나는 initialy 할 시도 :
string id = Page.RouteData.Values["ProductName"].ToString();
을하지만 page.aspx/Product/TestProduct
를 URL과 코드를 단계별로 갈 때, Page.RouteData
항상 null
입니다. 내 페이지 로딩을 위해 더 많은 정보가 필요하다는 것을 알고 있지만, 내가 읽은 것에서는 적어도 내 라우팅이 어떻게 작동하는지 볼 수있을 정도로 충분할 것이라고 생각했을 것입니다.
도현 대신 "/ 제품/제품 이름"URL로 이동보십시오! .aspx 페이지가 여전히 필요하다고 제안하는 기사를 보았습니다. –