2011-09-28 85 views
0

我正在做一個小的ASP.NET 2.0。網站重構。ASP.NET網站中的不同請求url的一個自定義處理程序

目前有以下文件夾結構:

/siteroot/services/home/service1 
/siteroot/services/home/service2 
/siteroot/services/home/service3 
... 

所有文件夾(服務1,2,3)含有一個幾乎相同的Default.aspx,具有硬編碼到web表單聲明不同的內容。

我的想法是創建一個service.aspx併爲特定的URL請求提供自定義頁面(使用相同的模板)。

我的問題是:

我如何可以重定向所有請求../services/home/service1,2,3到一個特定的處理器/ aspx頁面?

最好不要在項目結構中包含這些文件夾,而是截取前往它們的請求。

回答

1

如果您能夠實現ASP.NET 3.5(在2.0 CLR上運行),那麼Routing聽起來非常適合您需要實現的功能。有了這個,你可以攔截基於特定格式的URL,然後將它們路由到單個頁面或處理程序。您不需要每個服務的文件夾結構。

下面是關於如何在ASP.NET WebForms中使用它的幾個鏈接。這是相當快實現:

1

方式一:

  • 如有必要,點創建一個實現IHttpModule
  • Init(HttpApplication application)自定義處理程序類,登記方法application.AuthorizeRequest
  • 在這個方法中,解析((HttpApplication)sender).Request.Path酌情使用HttpContext.Current.RewritePath到「真實」service.aspx頁面。

然後在<system.webServer><modules>中註冊您的自定義處理程序。

另一種方法是使用MVC風格的路由,它可以在沒有MVC的情況下正常工作。詳情在這裏回答這個問題:custom URL Routing in asp.net

相關問題