我正在使用ASP.NET路由將URL映射到我的網站的任意數量的節。他們都將被同一頁面處理,但我想要有不同的URL。例如ASP.NET路由傳遞查詢字符串到頁面
http://site.com/blog
我blog
部分
http://site.com/mysection
爲mysection
等
可以有任意數量的部分,但他們都將被Lister.aspx
處理。 我還有另一個頁面處理內容,名爲ContentView.aspx
,它顯示了內容。我的路線如下:(貓是類別列表)
cats.ForEach(c =>
{
table.Add(new Route(c.ShortName, new PageRouteHandler("~/Lister.aspx?cat=" + c.ID),));
table.Add(new Route(c.ShortName + "/{id}", new PageRouteHandler("~/ContentView.aspx")));
table.Add(new Route(c.ShortName + "/{id}/{title}", new PageRouteHandler("~/ContentView.aspx")));
});
比方說,我有一個博客帖子ID爲123
和標題hello
:
用戶可以通過http://site.com/blog/123/hello
訪問他們也可以只使用ID http://site.com/blog/123
您可能猜到,我想http://site.com/blog
指向列表頁面而不是內容查看器,並且我還需要類別標識來區分哪個類別(blog
或mycategory
或其他任何動態創建的)我應該顯示。我試圖將類別ID傳遞給querystring,調用lister頁面,但沒有查詢字符串。爲什麼會出現這種行爲,以及如何將我的類別ID發送到列表頁面?
你的代碼包含兩個錯誤:CategoryRouteHandler的基類是什麼,GetHttpHandler方法返回什麼?我試圖通過使用PageRouteHandler作爲基類並返回當前的IHttpHandler,但不能將值傳遞給頁面來使它工作。 –
對不起,我編輯它,我認爲這應該工作。 – thelsdj