2013-06-19 73 views
1

我有一個應用程序有1個ASPX,它加載各種ASCX用戶控件。然後這個網頁形成的網址,如page.aspx?section=product&prodid=123,然後訪問一個產品等在ASP.NET 4.0中的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 } }); 
    } 
我一直在使用System.Web.Routing以及一個

在我的page.aspx。 C#代碼,我已經initialy試圖做:

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

回答

1

嘗試將URL 「/產品/產品名稱」,而不是 「/page.aspx/Product/ProductName」

+0

衛生署的!看到一篇文章,提示我仍然需要.aspx頁面。 –