2010-03-22 79 views
3

我正在開發使用URL路由的基於.NET 3.5 Web窗體的網站。到目前爲止,我已經創建了幾條路線,而且我沒有問題。我現在有一個.ashx文件,當有人點擊一個鏈接時,它將處理從SQL Server中的一個表格發送.pdf文件到網站。通常,當我創建一個處理程序就應該是這樣的:使用帶有.ashx文件的Web窗體的URL路由

return BuildManager.CreateInstanceFromVirtualPath("~/ViewItem.aspx", typeof(Page)) as Page; 

對於我的ashx的文件,我想:

return BuildManager.CreateInstanceFromVirtualPath("~/FileServer.ashx", typeof(Page)) as Page; 

這不工作,雖然因爲fileserver.ashx不是一個網頁,讓鑄造它作爲typeof(Page))與Page相關將失敗。我應該如何將VirtualPath轉換爲頁面,或者有其他方式我應該這樣做。

回答

4

使用typeof(IHttpHandler)代替typeof(Page)

即基類中的ashx文件的同時從作爲頁改變返回類型爲的IHttpHandler。然後更新任何其他代碼,這取決於它是一個頁面。

1

它是一個HTTP處理程序,因此您可能可以使用其IHttpHandler接口類型進行強制轉換。但是你不能使用頁面;你必須使用處理程序繼承的類型。

+0

你的答案都是相似的,並且工作。謝謝! – 2010-03-22 18:09:47

相關問題